Cod sursa(job #1906568)

Utilizator NicolaalexandraNicola Alexandra Mihaela Nicolaalexandra Data 6 martie 2017 14:57:29
Problema Next Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <fstream>
#include <cstring>
#define DIM 1000001
using namespace std;
int v[DIM],n;
long long d,r,nr,t,i,N,ok;
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 = v[0] = N;
    for (i=1;i<=n/2;i++)
        swap (v[i],v[n-i+1]);
    /*while (fin>>x){
        v[++n] = x-'0';
    }*/
    fin>>d;
    // aflam restul impartirii lui n la d
    for (i=n;i>=1;i--)
        r = (r*10 + v[i]) % d;
    nr = d-r; // pe nr il adunam cu n;


    for (i=1;i<=v[0];i++){
        ok = v[i]+nr;
        v[i] = (v[i]+nr) % 10;
        nr = ok/10;
    }
    while (nr != 0){
        v[++v[0]] = nr%10;
        nr/=10;
    }
    for (i=v[0];i>=1;i--)
        fout<<v[i];



    return 0;
}