Cod sursa(job #115649)

Utilizator ZeusCatalin Tiseanu Zeus Data 16 decembrie 2007 19:12:20
Problema Operatii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb

#include <cstdio>
#include <iostream>

using namespace std;

int st[1<<20], A[1<<20];

int main()
{
     freopen("operatii.in", "r", stdin);
     freopen("operatii.out", "w", stdout);
     
     int N, x, n_st = 0;
     long long ret = 0;
     
     scanf("%d", &N);
     for( int i = 1; i <= N; i++ )
          scanf("%d", A + i );
     
     for( int i = 0; i <= N + 1; i++ )
     {
          x = A[i];
          
          if( st[n_st] > x )
          {
              ret += (long long)(st[n_st]) - x;
              while( st[n_st] > x )
                     --n_st;
          }
          
          if( st[n_st] < x ) 
              st[++n_st] = x;    
     }
     
     cout << ret << endl;
     
     return 0;   
}