Pagini recente » Cod sursa (job #402187) | Cod sursa (job #855949) | Cod sursa (job #2693845) | Monitorul de evaluare | Cod sursa (job #562150)
Cod sursa(job #562150)
#include <iostream>
#include <fstream>
#include <stdlib.h>
#define nmax 1000000
using namespace std;
ifstream in("operatii.in"); ofstream out("operatii.out");
int v[nmax], a[nmax], n, i, j, pin, psf, nr=0;
int valid (int n)
{ int ok=0;
for (int k=1; k<=n; k++)
if ( a[k] != v[k] ) { ok=1; break; }
if (ok == 1) return 1; else return 0;
}
void incrementare(int pin, int psf)
{
nr++;
for (int k=pin; k<=psf; k++)
a[k]++;
}
void operatii(int n)
{
i=1;
while (i <= n)
{
if (a[i] != v[i])
{
pin=i;
while (a[i] != v[i])
{
psf=i;
i++;
}
incrementare(pin,psf);
}
i++;
}
if (valid(n)) operatii(n);
}
int main()
{
in>>n;
for (int i=1; i<=n; i++)
in>>v[i];
operatii(n);
out<<nr;
in.close();
out.close();
return 0;
}