Pagini recente » Cod sursa (job #2476976) | Monitorul de evaluare | Istoria paginii runda/preonisim2008/clasament | Istoria paginii utilizator/zgupufi | Cod sursa (job #272891)
Cod sursa(job #272891)
#include <stdio.h>
#include <string.h>
const int N=1000001;
char c[N-1];
int c2[N-1];
int e[N-1];
long long d,rest=0;
void obtinere()
{
int i,nr=1;
fgets(c+1,N-1,stdin);
c2[0]=strlen(c+1)-1;
for(i=c2[0];i>=1;i--)
c2[nr++]=c[i]-'0';
scanf("%lld",&d);
}
void restimpartire()
{
int i,t=0;
for(i=c2[0];i>0;i--)
rest=(t=t*10+c2[i])%d;
}
void vector()
{
long long a;
int i;
a=d;
e[0]=0;
for(i=1;i<=N;i++)
{
if(a==0)
break;
e[0]++;
e[i]=a%10;
a=a/10;
}
}
void suma()
{
int i,t=0;
for(i=1;i<=c2[0] || i<=e[0] || t;i++,t=t/10)
{
t=t+c2[i]+e[i];
c2[i]=t%10;
}
}
int main()
{
int i;
freopen("next.in","r",stdin);
freopen("next.out","w",stdout);
obtinere();
restimpartire();
if(rest==0)
for(i=c2[0];i>=1;i--)
printf("%d",c2[i]);
else
{
d=d-rest;
vector();
suma();
for(i=c2[0];i>=1;i--)
printf("%d",c2[i]);
}
return 0;
}