Pagini recente » Cod sursa (job #37321) | Cod sursa (job #3221029) | Cod sursa (job #229445) | Cod sursa (job #33819) | Cod sursa (job #2673343)
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
ifstream in("next.in");
ofstream out("next.out");
long long impartire(int a[], long long d)
{
long long r=0;
for(int i=a[0];i>0;i--)
{
a[i]=r*10+a[i];
r=a[i]%d;
a[i]/=d;
}
return r;
}
void citire(int a[])
{
char s[1000001];
in.get(s, 1000000);
for(int i=strlen(s)-1;i>=0;i--)
a[++a[0]]=s[i]-'0';
}
void copiere(int a[], int b[])
{
a[0]=b[0];
for(int i=1;i<=a[0];i++)
a[i]=b[i];
}
void adunare(int a[], long long x)
{
int i=1;
while(x)
{
a[i]=a[i]+x%10;
x/=10;
i++;
}i--;
if(i>a[0])a[0]=i;
for(i=1;i<a[0];i++)
{
a[i+1]+=a[i]/10;
a[i]%=10;
}
if(a[a[0]+1]>0)a[0]++;
}
void afisare(int a[])
{
for(int i=a[0];i>0;i--)
out<<a[i];
out<<'\n';
}
int a[1000001],b[1000001];
long long d,r;
int main()
{
citire(a);
in>>d;
copiere(b, a);
r=impartire(a, d);
adunare(b, d-r);
afisare(b);
return 0;
}