Mai intai trebuie sa te autentifici.
Cod sursa(job #1696929)
Utilizator | Data | 30 aprilie 2016 13:04:35 | |
---|---|---|---|
Problema | Next | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.79 kb |
#include <iostream>
#include <fstream>
#include <cstring>
#define ll long long
using namespace std;
ifstream f ("next.in");
ofstream g ("next.out");
char v[1000010],s[1000010];
ll d;
ll Mod(char v[], ll d)
{
ll r=0;
for (unsigned i=0;i<strlen(v);i++)
{
r=r*10+v[i]-'0';
r%=d;
}
return r;
}
int main()
{
f.getline(v,1000005);
f>>d;
ll r=Mod(v,d);
d-=r;
if (r==0)
{
g<<v;
return 0;
}
s[0]='0';
s[1]=0;
strcat(s,v);
bool sw=true;
for (int i=strlen(s)-1;i>=0&&(d||sw==true);i--)
{
s[i]+=d%10;
if (s[i]>'9'&&i>0) s[i-1]++,s[i]-=10,sw=true;
else sw=false;
d/=10;
}
if (s[0]=='0') g<<s+1;
else g<<s;
return 0;
}