Cod sursa(job #895664)

Utilizator oprea1si2si3Oprea Sebastian oprea1si2si3 Data 27 februarie 2013 12:08:01
Problema Next Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.06 kb
#include <iostream>
#include <fstream>
#include <cstring>
# define nmax 10000010
using namespace std;
ifstream in ("next.in");
ofstream out("next.out");
int v[nmax],ok,i,j,c;
long long r,d,n,t;
char s[nmax];
int main()
{
    in.getline(s,nmax);
    in>>d;
    n=strlen(s);
    v[0]=n;
    for(i=n;i>=1;i--)
        v[i]=s[n-i]-48;

    for (i = v[0]; i > 0; i--)
              r= (r * 10 +v[i]) % d;
    if(r==0)
        out<<s<<'\n';
    else
        {
        r=d-r;
        i=1;
        while(r)
                {
                    c=r%10;
                    r=r/10;
                    v[i]+=c;
                    j=i;
                    while(v[j]>9)
                    {
                     if(j==n)
                        n++;
                    v[j+1]+=v[j]/10;
                    v[j]=v[j]%10;
                    j++;
                    }
                    i++;
                }
            for(i=n;i>=1;i--)
                out<<v[i];
        out<<'\n';
        }
    in.close();
    out.close();
    return 0;
}