Pagini recente » Cod sursa (job #1127179) | Istoria paginii runda/preoji2010_runda1/clasament | Cod sursa (job #887644) | Cod sursa (job #1095313) | Cod sursa (job #705711)
Cod sursa(job #705711)
#include <cstdio>
#include <cstring>
#define NMax 1000005
#define LL long long
using namespace std;
LL N[NMax], M;
inline LL Modulo (LL A[], LL B)
{
LL Mod=0;
for (int i=A[0]; i>0; --i)
{
Mod=(10*Mod+A[i])%B;
}
return Mod;
}
inline void Add (LL A[], LL B)
{
int i, T=B;
for (i=1; i<=A[0] or T>0; ++i, T/=10)
{
T+=A[i]; A[i]=T%10;
}
A[0]=i-1;
}
void Read ()
{
freopen ("next.in", "r", stdin);
char Number[NMax]; memset (Number, 0, sizeof (Number));
scanf ("%s\n%I64d", Number, &M);
N[0]=strlen (Number);
for (int i=0; N[0]>0; --N[0], ++i)
{
N[N[0]]=Number[i]-'0';
}
N[0]=strlen (Number);
}
void Print ()
{
freopen ("next.out", "w", stdout);
for (int i=N[0]; i>0; --i)
{
printf ("%I64d", N[i]);
}
printf ("\n");
}
int main ()
{
Read ();
Add (N, M-Modulo (N, M));
Print ();
return 0;
}