Pagini recente » Cod sursa (job #607527) | Cod sursa (job #1681146) | Cod sursa (job #3138940) | Istoria paginii utilizator/upb_andritoiu_antoche_nitu | Cod sursa (job #831279)
Cod sursa(job #831279)
#include<stdio.h>
#include<string.h>
using namespace std;
#define MAXF 1000005
typedef int Huge[ MAXF ];
int i, j, len;
long long int D, r;
Huge a;
char S[ MAXF ];
inline long long int Divide(Huge a, long long int x)
{
int i;
long long int r = 0;
for(i = a[0]; i; --i)
r = ((long long)(10 * r + a[i]))%x;
return r;
}
int main()
{
FILE *f = fopen("next.in", "r");
fgets(S, 1000003, f);
fscanf(f, "%lld", &D);
fclose(f);
len = strlen(S) - 2;
a[0] = len + 1;
for(i = len, j = 1; i >= 0; --i, ++j)
a[j] = S[i] - '0';
r = Divide(a, D);
r = (D - r) % D;
j = 0;
for(i = 1; i <= a[0]; ++i)
{
a[i] += r % 10 + j;
j = a[i] / 10;
a[i] %= 10;
r /= 10;
}
while(j)
++a[0], a[ a[0] ] = j % 10, j /= 10;
FILE *g = fopen("next.out", "w");
for(i = a[0]; i; --i)
fprintf(g, "%d", a[i]);
fprintf(g, "\n");
fclose(g);
return 0;
}