Pagini recente » Cod sursa (job #1418688) | Cod sursa (job #566288) | Cod sursa (job #1368554) | Cod sursa (job #2869460) | Cod sursa (job #1788965)
#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()
{
char c;
f.get(c);
while(c != '\n') {
N[lg++] = c - '0';
f.get(c);
}
f >> D;
int i = lg, j = 0;
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;
}