Pagini recente » Cod sursa (job #1550991) | Cod sursa (job #1107593) | Cod sursa (job #686007) | Cod sursa (job #2580080) | Cod sursa (job #115262)
Cod sursa(job #115262)
#include<stdio.h>
#include<stdlib.h>
FILE *f=fopen("operatii.in","r");
FILE *g=fopen("operatii.out","w");
long n,x,y,i,j,max;
long v[1000000];
int nr[100],b[100];
void add(int A[], int B[])
{
int i, t = 0;
for (i=1; i<=A[0] || i<=B[0] || t; i++, t/=10)
A[i] = (t += A[i] + B[i]) % 10;
A[0] = i - 1;
}
int main(void)
{
fscanf(f,"%ld",&n);
for(i=1;i<=n;i++)
fscanf(f,"%ld",&v[i]);
for(i=1;i<=n;i++)
{
if(v[i])
{
if(v[i]>max)
max=v[i];
if(v[i]<v[i+1]&&v[i]<v[i-1])
{
x=max-v[i];
max=0;
for(j=b[0];j>=0;j--)
b[j]=0;
while(x)
{
b[0]++;
b[b[0]]=x%10;
x/=10;
}
add(nr,b);
}
}
else
{
x=max;
max=0;
for(j=b[0];j>=0;j--)
b[j]=0;
while(x)
{
b[0]++;
b[b[0]]=x%10;
x/=10;
}
add(nr,b);
}
}
x=max;
max=0;
for(i=b[0];i>=0;i--)
b[i]=0;
while(x)
{
b[0]++;
b[b[0]]=x%10;
x/=10;
}
add(nr,b);
for(i=nr[0];i>=1;i--)
fprintf(g,"%d",nr[i]);
fprintf(g,"\n");
return 0;
}