Cod sursa(job #1728615)

Utilizator alexandra_udristoiuUdristoiu Alexandra Maria alexandra_udristoiu Data 13 iulie 2016 13:22:20
Problema Next Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.97 kb
#include<fstream>
#include<cstring>
using namespace std;
int n, m, i, t;
long long d, r;
char v[1000005], w[20];
ifstream fin("next.in");
ofstream fout("next.out");
int main(){
    fin>> v + 1;
    n = strlen(v + 1);
    for(i = 1; i <= n; i++){
        v[i] -= '0';
    }
    for(i = 1; i <= n / 2; i++){
        swap(v[i], v[n - i + 1]);
    }
    fin>> d;
    for(i = n; i >= 1; i--){
        r = (r * 10 + v[i]) % d;
    }
    if(r != 0){
        r = d - r;
        while(r != 0){
            w[++m] = r % 10;
            r /= 10;
        }
        n = max(n, m);
        for(i = 1; i <= n; i++){
            if(i <= m){
                v[i] += w[i] + t;
            }
            else{
                v[i] += t;
            }
            t = v[i] / 10;
            v[i] %= 10;
        }
        if(t != 0){
            v[++n] = t;
        }
    }
    for(i = n; i >= 1; i--){
        fout<< (int) v[i];
    }
    fout<<"\n";
    return 0;
}