using System;
class SS
{
  static int[] num;
  static int[] N;
  static bool[] flag;
 static void Main()
 {
   int n=int.Parse(Console.ReadLine());
   flag=new bool[n];
   N=new int[n];
   num=new int[n];
   var lines=Console.ReadLine().Split(" ");
   int i=0;
   foreach(var line in lines)
   {
     int number=int.Parse(line);
     if(i==0)
     {
       num[i]=number;
       N[i]=i;
     }
     else
     {
       int head=0;
     	while(head<=i)
        {
          if(num[head]>number)
            head++;
          else
            break;
           
        }
       Push(i,head);
       num[head]=number;
       N[head]=i;
     }
     
     i++;
   }
   int sum=0;
   for(int j=0;j<n;j++)
   {
     var best= Search(N[j],n);
     //Console.WriteLine(best);
     sum+=num[j]*ABS(best-N[j]);
     flag[best]=true;
   }
  Console.WriteLine(sum);
 }
   static void Push(int i,int j)
   {
     for(int k=i-1;k>=j;k--)
     {
       num[k+1]=num[k];
       N[k+1]=N[k];
     }
   }
  static int Search(int n,int all)
  {
    int forward=0;
    int back=all-1;
    while(true)
    {
      if(flag[forward])
        forward++;
      else
        break;
    }
    while(true)
    {
      if(flag[back])
        back--;
      else
        break;
    }
    if(ABS(back-n)>ABS(forward-n))
      return back;
    else
      return forward;
  }
  static int ABS(int n)
  {
    if(n>0)
      return n;
    else
      return -1*n;
  }
  
}
