Cod sursa(job #1487051)

Utilizator eu3neuomManghiuc Teodor-Florin eu3neuom Data 15 septembrie 2015 23:53:21
Problema Next Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream fin("next.in");
ofstream fout("next.out");

const int T = 1e2;
const int NMax = 1e6 + 5;

int A[NMax], B[T];

void Read(long long int &MOD){
    string s;
    fin >> s >> MOD;
    A[0] = s.size();
    for(int i = 0; i < A[0]; i++){
        A[A[0] - i] = (s[i] - '0');
    }
}

long long int Mod(const long long int MOD){
    int t = 0;
    for(int i = A[0]; i > 0; i--){
        t = (t * 10 + A[i]) % MOD;
    }
    return t;
}

void Sum(){
    int i, t = 0;
    for(i = 1; i <= A[0] || i <= B[0] || t; i++, t /= 10){
        A[i] = (t += A[i] + B[i]) % 10;
    }
    A[0] = i - 1;
}

int main(){
    long long int MOD, D;
    Read(MOD);
    D = (MOD - Mod(MOD)) % MOD;
    while(D){
        B[0]++;
        B[B[0]] = D % 10;
        D /= 10;
    }
    Sum();
    for(int i = A[0]; i > 0; i--){
        fout << A[i];
    }
    return 0;
}