Cod sursa(job #1896491)

Utilizator robx12lnLinca Robert robx12ln Data 28 februarie 2017 18:41:29
Problema Next Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include<fstream>
#include<cstring>
using namespace std;
ifstream fin("next.in");
ofstream fout("next.out");
long long d;
int m;
int a[1000005];
char n[1000005];
long long rest(){
    long long r = 0;
    for( int i = a[0]; i > 0; i-- ){
        r = ( r * 10 + a[i] ) % d;
    }
    return r;
}
void adunare( long long t ){
    for( int i = 1; i <= a[0]; i++ ){
        long long val = a[i] + t;
        t = val / 10;
        a[i] = val % 10;
    }
    while( t != 0 ){
        a[++a[0]] = t % 10;
        t /= 10;
    }
    return ;
}
int main(){
    fin >> n >> d;
    m = strlen( n );
    for( int i = 0; i < m; i++ ){
        a[i + 1] = ( n[m - i - 1] - '0' );
    }
    a[0] = m;
    adunare( d - rest() );
    for( int i = a[0]; i >= 1; i-- ){
        fout << a[i];
    }
    return 0;
}