Cod sursa(job #903456)

Utilizator deea101Andreea deea101 Data 1 martie 2013 20:57:31
Problema Next Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 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 d,i;
    long long 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++)
        {
            a[i]=a[i]+b[i]+t;
            if(a[i]>10) {a[i]=a[i]%10; t=1;}
            else t=0;
        }
        a[0]=i-1;
        for(i=a[0];i;i--) printf("%d",a[i]);
    }
}