Cod sursa(job #2108367)

Utilizator lilipopliliana arici lilipop Data 18 ianuarie 2018 09:41:09
Problema Next Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <iostream>
#include <fstream>
#include <algorithm>
#include <cstring>
using namespace std;
int a[1000005],b[1000005];
char s[1000005];
void adun (int a[], int b[])
{
    int i,t=0;
    for (i=1;i<=a[0] ||i<=b[0]||t;i++)
    {
        t+=a[i]+b[i];
        a[i]=t%10;
        t=t/10;
    }
    a[0]=i-1;

}
long long mod(int a[], long long b)
{
    int i;
    long long t=0;
    for (i=a[0];i>0;i--)
    t=(t*10+a[i])%b;
    return t;
}
int main()
{
 long long d,r;
 int i;
ifstream f("next.in");
ofstream g("next.out");
f.getline(s,1000005);
for (i = 0; i <strlen(s); i++)
    a[++a[0]]=s[i]-'0';
reverse (a + 1, a + a[0] + 1);
f>>d;
r=mod(a,d);
if (r>0)
  r=d-r;
while (r != 0)
            {
                b[++b[0]] = r % 10;
                r = r / 10;
            };
adun (a,b);
for (i = a[0]; i >= 1; i--)
   g << a[i];
f.close();
g.close();
return 0;
}