Cod sursa(job #227929)

Utilizator ProcopliucProcopliuc Adrian Procopliuc Data 5 decembrie 2008 22:08:32
Problema Next Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
# include <stdio.h>
long long int a[400000],i,n,b[400000],x,w,j,z,y,aux,ok;
char q;
long long int nrcif (long long int x)
{
int k=0;
while (x)
{
k++;
x=x/10;
}
return k;

}



int main ()
{
freopen ("next.in","r",stdin);
freopen ("next.out","w",stdout);
i=0;
while (scanf ("%c",&q))
{

a[i]=q-48;
if (a[i]==-38)
break;
i++;
}
n=i;
scanf ("%lli",&x);
w=nrcif (x);
j=0;
j=j+w;
z=0;
for (i=0;i<j;i++)
y=y*10+a[i];
if (y<x)
{
y=y*10+a[j];
j++;
}
b[z]=y/x;
z++;
y=y%x;
while (j<n)
{
y=y*10+a[j];
j++;
b[z]=y/x;
z++;
y=y%x;
}
n=z;

i=n-1;
while (b[i]==9)
{
i--;
ok=1;
}
if (ok==1)
i--;
b[i]++;
i++;
while (i<n)
{
b[i]=0;
i++;
}
for (i=0;i<n;i++)
{
aux=b[i];
b[i]=b[n-i-1];
b[n-i-1]=aux;
}
for (i=0;i<n;i++)
b[i]=b[i]*x;
y=0;
for (i=0;i<n;i++)
{
b[i]=b[i]+y;
y=b[i]/10;
b[i]=b[i]%10;
}
x=y;

while (x)
{
b[n]=x%10;
n++;
x=x/10;
}
for (i=n-1;i>=0;i--)
printf ("%lli",b[i]);
return 0;
}