Cod sursa(job #2002542)

Utilizator georgitTreista Georgiana georgit Data 20 iulie 2017 10:48:50
Problema Next Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <fstream>
#include <cstring>
using namespace std;
char s[1000001];
long long n,i,d,r,x,k;
typedef int NrMare[1000001];
NrMare v,a;
void Adunare(NrMare x,NrMare y)
{
    int i,t=0;
    if(x[0]<y[0])
        x[0]=y[0];
    for(i=1; i<=x[0]; i++,t/=10)
    {
        t=x[i]+y[i]+t;
        x[i]=t%10;
    }
    if(t)
        x[++x[0]]=t;
}
int main()
{
    ifstream f("next.in");
    ofstream g("next.out");
    f.get(s,10000);
    f>>d;
    n=strlen(s);
    for(i=n-1; i>=0; i--)
        v[n-i]=s[i]-'0';
    for(i=n; i>=1; i--)
        r=(r*10+v[i])%d;
    x=d-r;
    while(x)
    {
        a[++k]=x%10;
        x=x/10;
    }
    a[0]=k;
    v[0]=n;
    Adunare(a,v);
    for(i=a[0]; i>=1; i--)
        g<<a[i];
    f.close();
    g.close();

    return 0;
}