Pagini recente » Cod sursa (job #767213) | Cod sursa (job #1523041) | Cod sursa (job #945054) | Cod sursa (job #11475) | Cod sursa (job #330251)
Cod sursa(job #330251)
# include <stdio.h>
const long int MAXN=1000000;
long int stiva[MAXN+1],v[MAXN+1];
long int stlen,n,sol;
void citire()
{
FILE *f=fopen("operatii.in","r");
fscanf(f,"%ld",&n);
long int i;
for (i=1;i<=n;i++)
fscanf(f,"%ld",&v[i]);
fclose(f);
}
void scrie()
{
FILE *g=fopen("operatii.out","w");
fprintf(g,"%ld\n",sol);
fclose(g);
}
void push(long int val)
{
stiva[++stlen]=val;
}
int empty() {return stlen==0;}
long int top() {return stiva[stlen];};
void pop()
{
long int nivc=top();
stlen--;
sol+=nivc-top();
}
void calculeaza()
{
long int i;
for (i=1;i<=n;i++)
if (v[i]>top()) push(v[i]);
else if (v[i]<top()) pop();
while (!empty()) pop();
}
int main()
{
citire();
calculeaza();
scrie();
return 0;
}