Cod sursa(job #273778)
| Utilizator | Data | 8 martie 2009 23:52:56 | |
|---|---|---|---|
| Problema | Operatii | Scor | 30 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.64 kb |
#include <fstream>
using namespace std;
const int INF = ~(1<<31);
ifstream fin("operatii.in");
ofstream fout("operatii.out");
int main() {
int N,minv = INF, maxv = ~INF, t = 0;
long long sol = 0;
fin>>N;
for(int v,vl=-1,i=0;i<=N;++i, vl = v) {
if(i < N) fin>>v;
else v = 0;
if(v) minv = min(minv,v), maxv = max(maxv,v);
if(v < vl && maxv != ~INF) sol += maxv, ++t, maxv = ~INF;
if(!v && minv != INF) sol -= minv*(t-1), minv = INF, t = 0;
}
fout<<sol;
}
