Pagini recente » Istoria paginii runda/nimic_suspect2/clasament | Istoria paginii runda/lasm203.03.2017/clasament | Profil OvidiuBach | Profil antonia.gheorghe | Cod sursa (job #1687939)
#include <fstream>
#include <cstring>
#include <algorithm>
using namespace std;
ifstream fin("next.in");
ofstream fout("next.out");
const int NMAX=1000000;
int a[NMAX+5];
char b[NMAX+5];
char s[NMAX+1];
void hprint(int v[])
{
for(int i=v[0];i>=1;i--)
fout<<v[i];
fout<<"\n";
}
long long rest_hn_int(int a[],long long k)
{
long long r;
int i;
r=0;
for(i=a[0];i>=1;i--)
{
r=r*10+a[i];
r=r%k;
}
return r;
}
void adunh(int a[],char b[])
{
int i,tr,aux,l;
tr=0;
if(a[0]>b[0])
l=a[0];
else
l=b[0];
a[0]=l;
for(i=1;i<=a[0];i++)
{
aux=a[i]+b[i]+tr;
a[i]=aux%10;
tr=aux/10;
}
while(tr)
{
a[++a[0]]=tr%10;
tr=tr/10;
}
}
int main()
{
long long d,r;
int i,n;
fin.getline(s,NMAX+1);
n=strlen(s);
fin>>d;
a[0]=n;
for(i=n-1;i>=0;i--)
a[n-i]=s[i]-'0';
r=rest_hn_int(a,d);
if(r)
{
d=d-r;
do
{
b[++b[0]]=d%10;
d=d/10;
}while(d);
adunh(a,b);
}
hprint(a);
fin.close();
fout.close();
return 0;
}