Pagini recente » Cod sursa (job #224096) | Istoria paginii runda/redsnow_3 | Cod sursa (job #1016774) | Cod sursa (job #175329) | Cod sursa (job #272885)
Cod sursa(job #272885)
#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(FILE *f1)
{
int i,nr=1;
fgets(c,N-1,f1);
c2[0]=strlen(c)-1;
for(i=c2[0]-1;i>=0;i--)
c2[nr++]=c[i]-'0';
fscanf(f1,"%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;
FILE *f1,*f2;
f1=fopen("next.in","r");
f2=fopen("next.out","w");
obtinere(f1);
restimpartire();
if(rest==0)
for(i=c2[0];i>=1;i--)
fprintf(f2,"%d",c2[i]);
else
{
d=d-rest;
vector();
suma();
for(i=c2[0];i>=1;i--)
fprintf(f2,"%d",c2[i]);
}
return 0;
}