Cod sursa(job #39692)

Utilizator mihai0110Bivol Mihai mihai0110 Data 26 martie 2007 21:57:35
Problema Next Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.07 kb
#include<fstream.h>
ifstream f("next.in");
ofstream g("next.out");
short int aux,t,t1,x,y,a[200000],b[17],c[200000],d[17];
char k;
long i,n,m;
void scad()
{
int i, t = 0;
for (i = 1; i <= m; i++)
c[i] += (t = (c[i] -= d[i] + t) < 0) * 10;
for (; m > 1 && !c[m]; m--);
}
void add()
{
int i, t = 0;
for (i=1; i<=m || i<=b[0] || t; i++, t/=10)
c[i] = (t += c[i] + b[i]) % 10;
m = i - 1;
}
int mod()
{
int i, t = 0;
for (i = n; i > 0; i--)
t = (t * 10 + a[i]) % x;
return t;
}
int main()
{
f.get(k);
while(k!='\n')
{
n++;
a[n]=k-'0';
f.get(k);
}
f.get(k);
while(k!='\n')
{
b[0]++;
b[b[0]]=k-'0';
x=x*10+b[b[0]];
f.get(k);
}
for(i=1;i<=n/2;i++)
{
aux=a[i];
a[i]=a[n-i+1];
a[n-i+1]=aux;
}
for(i=1;i<=b[0]/2;i++)
{
aux=b[i];
b[i]=b[b[0]-i+1];
b[b[0]-i+1]=aux;
}
i=i;
for(i=0;i<=n;i++)
c[i]=a[i];
m=n;

y=mod();
add();
d[0]=0;
while(y)
{
d[0]++;
d[d[0]]=y%10;
y=y/10;
}
for(i=1;i<=b[0]/2;i++)
{
aux=b[i];
b[i]=b[b[0]-i+1];
b[b[0]-i+1]=aux;
}
scad();
for(i=m;i>=1;i--)
g<<c[i];
g<<'\n';
f.close();
g.close();
return 0;
}