Cod sursa(job #1425296)

Utilizator BLz0rDospra Cristian BLz0r Data 27 aprilie 2015 11:28:07
Problema Next Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <fstream>
#include <cstring>
using namespace std;

#define Nmax 10000005

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

int A[Nmax], B[Nmax];
char S[Nmax];

long long Modulo ( int A[], int Mod ){
    long long rez = 0;

    for ( int i = A[0]; i > 0; i-- )
        rez = ( rez * 10 + A[i] ) % Mod;

    return rez;
}

void Adun ( int A[], long long B ){

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


int main(){
    long long D;

    fin >> S;
    fin >> D;

    int lg = strlen ( S );

    for ( int i = lg - 1; i >= 0; --i ){
        int cif = S[i] - '0';
        if ( cif >= 0 && cif <= 9 )
            A[++A[0]] = cif;
    }

    long long rest = ( D - Modulo ( A, D ) ) % D;

    Adun ( A, rest );

    for ( int i = A[0]; i >= 1; --i )
        fout << A[i];

    return 0;
}