Pagini recente » Cod sursa (job #2576867) | Cod sursa (job #2552858) | Cod sursa (job #1555882) | Cod sursa (job #2949855) | Cod sursa (job #1788888)
#include <iostream>
#include <fstream>
#include <string.h>
using namespace std;
ifstream f("next.in");
ofstream g("next.out");
char N[1000001];
long long int D;
int lg;
long long int mod(char A[], long long int B)
{
int i;
long long t = 0;
for (i = lg; i > 0; i--)
t = (t * 10 + A[i]) % B;
return t;
}
void add(char A[], long long int B)
{
int i;
long long t = B;
for (i=1; i<=lg || t; i++, t/=10)
A[i] = (t += A[i]) % 10;
lg = i - 1;
}
void afisare(char N[]) {
int i;
for (i = lg; i >= 1; i--)
g << int(N[i]);
}
int main()
{
f >> N;
f >> D;
int i, j = 0;
for (i = 0; N[i] != 0; i++)
N[i] = N[i] - '0';
lg = i;
while (j < i) {
char aux = N[i];
N[i] = N[j];
N[j] = aux;
j++; i--;
}
long long int R = mod(N, D);
if (R > 0) add(N, D - R);
afisare(N);
return 0;
}