Cod sursa(job #1487055)

Utilizator eu3neuomManghiuc Teodor-Florin eu3neuom Data 16 septembrie 2015 00:02:36
Problema Next Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <iostream>
#include <fstream>

using namespace std;

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

const int NMax = 1e6 + 1e3;

int A[NMax], B[NMax];

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 = 1LL * (t * 10 + A[i]) % MOD;
    }
    return t;
}

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

int main(){
    long long int MOD, D;
    Read(MOD);
    D = 1LL * (MOD - Mod(MOD)) % MOD;
    Sum(D);
    for(int i = A[0]; i > 0; i--){
        fout << A[i];
    }
    return 0;
}