Pagini recente » Cod sursa (job #1818435) | Cod sursa (job #2163642) | Cod sursa (job #1919135) | Cod sursa (job #1064100) | Cod sursa (job #176760)
Cod sursa(job #176760)
// http://infoarena.ro/problema/next
#include <stdio.h>
#include <string.h>
FILE *fin = fopen("next.in","r"), *fout = fopen("next.out","w");
char N[1000005];
int REZ[1000005];
long long D, S;
long mod(char a[],long long b)
{
long i;
long long t = 0;
for(i = 0 ; i <= S - 2 ; i++)
{
t = (t * 10 + (a[i] - '0')) % b;
}
return t;
}
void suma(long long b)
{
int i, t = 0;
for (i = 0; b || t; i++, b /= 10, t /= 10)
REZ[S - i - 2] = (t += ((N[S - i - 2] - '0') + b % 10)) % 10;
}
int main()
{
long long r1, r2;
fgets(N, 1000005, fin);
S = strlen(N);
fscanf(fin, "%lld\n", &D);
r1 = mod(N, D);
r2 = (D - r1) % D;
suma(r2);
for (long i = 0; i < S - 1; i++)
fprintf(fout, "%d", REZ[i]);
fcloseall();
return 0;
}