Cod sursa(job #1777257)

Utilizator PruteanuTheoPruteanu Theodor PruteanuTheo Data 12 octombrie 2016 10:16:29
Problema Next Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.97 kb
#include <cstdio>
#include <cstring>

using namespace std;

const int NMAX=1000000;

char s[NMAX+2];
int x[NMAX+2];

int main()
{
    freopen("next.in","r",stdin);
    freopen("next.out","w",stdout);
    long long d=0;
    gets(s);
    x[0]=strlen(s);
    for(int i=1;i<=x[0];++i)
    {
        x[i]=s[x[0]-i]-'0';
    }
    scanf("\n%I64d",&d);
    long long r=0;
    for(int j=x[0];j>=1;--j)
    {
        r=(r*10+x[j])%d;
    }
    if(r==0)
        {
            for(int i=x[0];i>=1;--i)
                printf("%d",x[i]);
            return 0;
        }
    d=d-r;
    int tr=0,aux;
    int cifra;
    int i=0;
    while(d)
    {
        ++i;
        cifra=d%10;
        aux=x[i]+cifra+tr;
        x[i]=aux%10;
        tr=aux/10;
        d=d/10;
    }
    while(tr)
    {
        ++i;
        aux=x[i]+tr;
        x[i]=aux%10;
        tr=aux/10;
    }
    for(int i=x[0];i>=1;--i)
                printf("%d",x[i]);
    return 0;
}