Pagini recente » Cod sursa (job #1102881) | Calibrare limite de timp | Cod sursa (job #1591460) | Cod sursa (job #1248118) | Cod sursa (job #1425302)
#include <cstdio>
#include <cstring>
using namespace std;
#define Nmax 1000005
FILE *f = fopen ( "next.in", "r" );
FILE *g = fopen ( "next.out", "w" );
int A[Nmax];
char S[Nmax];
long long Modulo ( int A[], int Mod ){
long long rez = 0;
for ( int i = A[0]; i > 0; i-- )
rez = ( rez * 10 + A[i] ) % Mod;
return rez;
}
void Adun ( int A[], long long B ){
int i, t = 0;
for (i = 1; i <= A[0] || B || t; i++, t /= 10, B /= 10)
A[i] = (t += A[i] + B % 10) % 10;
A[0] = i - 1;
}
int main(){
long long D;
fgets ( S, Nmax, f );
int k;
for ( k = 0; '0' <= S[k] && S[k] <= '9'; k++ );
for ( k--; k >= 0; k-- )
A[++A[0]] = S[k] - '0';
for (; A[A[0]] == 0 && A[0]; A[0]-- );
fscanf ( f, "%lld", &D );
long long rest = ( D - Modulo ( A, D ) ) % D;
Adun ( A, rest );
for ( int i = A[0]; i >= 1; --i )
fprintf ( g, "%d", A[i] );
fprintf ( g,"\n" );
return 0;
}