Cod sursa(job #1052064)

Utilizator Athena99Anghel Anca Athena99 Data 10 decembrie 2013 20:41:54
Problema Next Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <cassert>
#include <cstdio>
#include <cstring>

typedef long long i64;

const int base= 10;
const int nmax= 1000000;

char s[nmax+10];
int v[nmax+10];

int main(  ) {
    assert( freopen( "next.in", "r", stdin ) );
    assert( freopen( "next.out", "w", stdout ) );
    
    assert( fgets(s, nmax+5, stdin ) );
    int n= strlen(s)-1;
    for ( int i= 1; i<=n; ++i ) {
        v[i]= (int)s[n-i]-'0';
    }

    i64 d, t= 0;
    assert( scanf("%lld", &d) );
    for ( int i= n; i>0; --i ) {
        t= (t*base+v[i])%d;
    }
    t= (d-t)%d;

    int i;
    for ( i= 1; i<=n || t>0; ++i, t/= base ) {
        v[i]= (t+= v[i])%base;
    }
    n= i-1;

    for ( int i= n; i>0; --i ) {
        printf("%d", v[i]);
    }
    printf("\n");

    return 0;
}