Pagini recente » Cod sursa (job #1297668) | Cod sursa (job #645870) | Cod sursa (job #2185725) | Cod sursa (job #2337209) | Cod sursa (job #1788634)
#include <iostream>
#include <fstream>
using namespace std;
const int CMAX=1000002;
ifstream f("next.in");
ofstream g("next.out");
char N[CMAX];
int lg;
long long D;
void inversare()
{
int i,j=0;
for(i=0;N[i]!=0;i++)
N[i]-='0';
lg=i;
while(j<i)
swap(N[j++],N[i--]);
}
long long mod(char A[],int lg, long long 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[], int &lg, long long r)
{
long long t=r;
for(int i=1;i<=lg;i++)
{
t+=A[i];
A[i]=t%10;
t/=10;
}
while(t>0)
{
A[++lg]=t%10;
t/=10;
}
}
int main()
{
f.getline(N,CMAX);
inversare();
f>>D;
long long rest=mod(N,lg,D);
if(rest>0)
add(N,lg,D-rest);
for(int i=lg;i>=1;i--)
g<<(int)N[i];
return 0;
}