Cod sursa(job #1729085)

Utilizator cristina_borzaCristina Borza cristina_borza Data 14 iulie 2016 09:55:30
Problema Operatii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <fstream>

#define NMAX 1000005

using namespace std;

ifstream f ("operatii.in");
ofstream g ("operatii.out");

int v[NMAX] , d[NMAX];
int n , st;

long long ans;

int main() {
    f >> n;
    for (int i = 1; i <= n; ++i) {
        f >> v[i];
    }

    d[1] = v[1];
    st = 1;

    for (int i = 2; i <= n + 1; ++i) {
        if (v[i] > d[st]) {
            d[++st] = v[i];
        }

        if (v[i] < d[st]) {
            ans += (long long) d[st] - v[i];
            --st;

            while (st > 0 && d[st] > v[i]) {
                --st;
            }

            d[st + 1] = v[i];
            ++st;
        }
    }

    g << ans;
    return 0;
}