Cod sursa(job #1906485)

Utilizator NicolaalexandraNicola Alexandra Mihaela Nicolaalexandra Data 6 martie 2017 14:23:05
Problema Next Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <fstream>
#include <cstring>
#define DIM 1000001
using namespace std;
int v[DIM],n,c[DIM];
long long d,r,nr,w[20],t,i,N;
char a[DIM];
ifstream fin ("next.in");
ofstream fout ("next.out");

int main (){

    fin>>a+1;
    N = strlen (a+1);
    for (i=1;i<=N;i++)
        v[i] = a[i]-'0';
    n = N;
    /*while (fin>>x){
        v[++n] = x-'0';
    }*/
    fin>>d;
    // aflam restul impartirii lui n la d
    for (i=1;i<=n;i++)
        r = (r*10 + v[i]) % d;
    nr = (d-r) % d; // pe nr il adunam cu n;
    while (nr != 0){
        w[++w[0]] = nr%10;
        nr/=10;
    }
    for (i=1;i<=n/2;i++)
        swap (v[i],v[n-i+1]);
    if (n < w[0])
        n = w[0];
    for (i=1;i<=n;i++){
        c[i] = v[i] + w[i]+t;
        t = c[i]/10;
        c[i] %= 10;
    }
    c[0] = n;
    if (t != 0)
        c[++c[0]] = t;
    for (i=c[0];i>=1;i--)
        fout<<c[i];

    return 0;
}