Pagini recente » Diferente pentru monthly-2012/runda-8/solutii intre reviziile 17 si 2 | Diferente pentru preoni-2008/runda-1/solutii/pairs intre reviziile 7 si 6 | Cod sursa (job #2079724) | Diferente pentru utilizator/rodik_rody intre reviziile 57 si 56 | Cod sursa (job #1900136)
#include <cstdio>
#include <iostream>
#include <bitset>
using namespace std;
int v[1000001],w[1000010];
char f [100001];
int main()
{
FILE *fin=fopen ("operatii.in","r");
FILE *fout=fopen ("operatii.out","w");
int n,m,i,mini,baz;
long long sol=0;
fscanf (fin,"%d",&n);
m=1;
w[m]=0;
mini=0;
for (i=1;i<=n;i++){
fscanf (fin,"%d",&v[i]);
if (v[i]!=v[i-1])
w[++m]=v[i];
}
w[++m]=0;
baz=0;
for (i=2;i<m;i++){
if (w[i]>w[i-1] && w[i]>w[i+1])
sol+=w[i]-baz;
if (w[i-1]>w[i] && w[i]<w[i+1])
baz=w[i];
}
fprintf (fout,"%lld",sol);
return 0;
}