Cod sursa(job #765911)

Utilizator vendettaSalajan Razvan vendetta Data 9 iulie 2012 18:55:22
Problema Next Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <iostream>
#include <fstream>

using namespace std;

#define nmax 1000004

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 = (1LL*10*R+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;
    }

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

}

int main(){

    citeste();
    rezolva();


}