Cod sursa(job #903489)

Utilizator deea101Andreea deea101 Data 1 martie 2013 21:19:51
Problema Next Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <fstream>
#include <cstdio>
#include <cstring>

#define nmax 10000010
using namespace std;
ifstream f("next.in");

int a[nmax],b[20];
char s[nmax];
int main()
{

    freopen("next.out","w",stdout);
    f.getline(s,1000001);
    int i;
    long long d,r=0;
    f>>d;
    a[0]=strlen(s);
    for(i=a[0];i;i--)
        a[a[0]-i+1]=s[i-1]-'0';

    for(i=a[0];i;i--)
        r=(r*10+a[i])%d;

    if(!r) printf("%s",s);
    else
    {
        d=d-r;
        while(d)
        {
            b[++b[0]]=d%10;
            d/=10;
        }
        int t=0;
        for (i=1; i<=a[0] || i<=b[0] || t; i++, t/=10)
              a[i] = (t += a[i] + b[i]) % 10;
        a[0]=i-1;
        for(i=a[0];i;i--) printf("%d",a[i]);
    }
}