Cod sursa(job #1061341)

Utilizator TibixbAndrei Tiberiu Tibixb Data 19 decembrie 2013 16:58:00
Problema Operatii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.31 kb
#include<fstream>
#include<stdio.h>
using namespace std;
int T, x, s[17], v [9], n, i, j, maxim;
int maxim2(int x1, int y){
    if(x1>y)
        return x1;
    else
        return y;
}
FILE*fin=fopen("operatii.in","r");
ofstream fout("operatii.out");
int main(){
    fscanf(fin,"%d", &n);
    for(j=1; j<=n; j++){
        fscanf(fin,"%d", &x);
        if(x!=0){
            if(x>maxim)
                maxim=x;
        }
        else{
            v[0]=0;
            while(maxim!=0){
                v[++v[0]]=maxim%10;
                maxim/=10;
            }
            if(v[0]>s[0])
                s[0]=v[0];
            for(i=1; i<=maxim2(v[0], s[0]); i++){
                s[i]=(T+s[i]+v[i])%10;
                T=(T+s[i]+v[i])/10;
            }
            if(T!=0){
                s[++s[0]]=T;
                T=0;
            }
        }
    }
    if(maxim!=0){
        v[0]=0;
        while(maxim!=0){
            v[++v[0]]=maxim%10;
            maxim/=10;
        }
         if(v[0]>s[0])
                s[0]=v[0];
        for(i=1; i<=maxim2(v[0], s[0]); i++){
            s[i]=(T+s[i]+v[i])%10;
            T=(T+s[i]+v[i])/10;
        }
        if(T!=0){
            s[++s[0]]=T;
            T=0;
        }
    }
    for(i=s[0]; i>=1; i--)
        fout<<s[i];
return 0;
}