Pagini recente » Cod sursa (job #2956472) | Cod sursa (job #2258201)
#include <fstream>
#include <cstring>
using namespace std;
ifstream fin("next.in");
ofstream fout("next.out");
///12288KB=10.000.000B(10milioane B)
const int NMAX=1000003;
char s[NMAX];
int a[NMAX];
void citire(int a[NMAX])
{
int n,i;
fin.getline(s,NMAX);
n=strlen(s);
a[0]=0;
for(i=n;i>=1;i--)
a[++a[0]]=s[i-1]-'0';
}
void print(int a[])
{
int i;
for(i=a[0];i>=1;i--)
fout<<a[i];
}
long long mod(int a[],long long x)
{
long long r;
int i;
r=0;
for(i=a[0];i>=1;i--)
{
r=r*10+a[i];
r=r%x;
}
return r;
}
void suma(int a[],long long x)
{
int tr=0,i=1;
while(x)
{
a[i]=a[i]+x%10+tr;
tr=0;
x=x/10;
if(a[i]>9)
{
a[i]%=10;
a[i+1]+=1;
}
i++;
}
if(i>a[0])
{
i=a[0]+1;
while(a[i]>0)
{
a[0]++;
i++;
}
}
}
int main()
{
unsigned long long D,rest;
citire(a);
fin>>D;
rest=D-mod(a,D);
if(rest==D)
{
print(a);
return 0;
}
suma(a,rest);
print(a);
return 0;
}