Cod sursa(job #765917)

Utilizator vendettaSalajan Razvan vendetta Data 9 iulie 2012 19:05:29
Problema Next Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <iostream>
#include <fstream>

using namespace std;

#define nmax 1000010

ifstream f("next.in");
ofstream g("next.out");

string s;
int a[nmax];
long long d;

void citeste(){

    f >> s;
    f >> d;

}

void rezolva(){

    for(int i=s.size()-1; i>=0; i--){
        a[++a[0]] = s[i]-'0';
    }

    //numarul e scrie invers a[1] = ultima cifra, etc;

    long long R = 0;
    for(int i=a[0]; i>=1; i--){
        R = (R*10+1LL*a[i]) % d;
    }

    long long cat = (d-R) % d;
    int t = 0;
    for(int i=1; i<=a[0]; i++){
        a[i] = a[i] + (cat % 10) + t;
        t = a[i] / 10;
        a[i] = a[i] % 10;
        cat = cat / 10;
    }

    if (t)a[++a[0]] = t;

    for(int i=a[0]; i>=1; i--){
        g << a[i];
    }

}

int main(){

    citeste();
    rezolva();


}