Cod sursa(job #1336307)

Utilizator laurageorgescuLaura Georgescu laurageorgescu Data 7 februarie 2015 16:36:52
Problema Next Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include<fstream>
#include<string>

using namespace std;

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

const int base = 10;
int n[ 1000001 ];
string s;

void add( long long p ) {
    int i, t = 0;
    for( i = 1; p > 0 || t != 0; ++ i, p /= 10 ) {
        n[ i ] += p % 10 + t;
        t = n[ i ] / base;
        n[ i ] %= base;
    }
    -- i;
    if ( i > n[ 0 ] ) {
        n[ 0 ] = i;
    }
}
int main() {
    long long r, d;
    fin >> s >> d;
    r = 0;
    for( int i = ( int )s.size() - 1; i >= 0; -- i ) {
        n[ ++ n[ 0 ] ] = s[ i ] - '0';
    }
    s.clear();
    for( int i = n[ 0 ]; i > 0; -- i ) {
        r = (r * 10 + n[ i ]) % d;
    }
    if ( r == 0 ) {
        r = d;
    }
    r = d - r;
    add( r );
    for( int i = n[ 0 ]; i > 0; -- i ) {
        fout << n[ i ];
    }
    fout << "\n";
    fin.close();
    fout.close();
    return 0;
}