Cod sursa(job #37203)

Utilizator dominoMircea Pasoi domino Data 24 martie 2007 18:02:00
Problema Next Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <stdio.h>
#include <string.h>

#define MAX_N 1000005
#define FIN "next.in"
#define FOUT "next.out"

int N[MAX_N]; long long D;
char n[MAX_N];

int main(void)
{
    int i;
    long long t;

    freopen(FIN, "r", stdin);
    freopen(FOUT, "w", stdout);

    fgets(n, sizeof(n), stdin); 
    if (n[strlen(n)-1] == '\n') n[strlen(n)-1] = 0;
    scanf("%lld", &D);
    for (i = strlen(n)-1; i >= 0; i--)
        N[++N[0]] = n[i]-'0';
    
    for (i = N[0], t = 0; i > 0; i--)
        t = (t*10 + N[i]) % D;
    for (i = 1, t = (D-t)%D; i <= N[0] || t; i++, t /= 10)
        N[i]  = (t += N[i]) % 10;
    N[0] = i-1;
    
    for (i = N[0]; i > 0; i--)
        printf("%d", N[i]);
    printf("\n");

    return 0;
}