Cod sursa(job #458035)

Utilizator edp100Edp100 edp100 Data 22 mai 2010 18:30:56
Problema Next Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include<stdio.h>
#include<string.h>
#define ll long long

int dr,st,nr;
ll v[1000005];
ll MOD,rest;
char s[1000005];

int main ()
{
    int i,aux;
    freopen("next.in","r",stdin);
    freopen("next.out","w",stdout);
    gets(s);
    nr=strlen(s);
    for(i=1;i<=nr;i++)
        v[i]=s[i-1]-'0';
    v[0]=nr;
    st=1;dr=v[0];
    while(st<=dr)
    {
        aux=v[st];
        v[st]=v[dr];
        v[dr]=aux;
        st++;
        dr--;
    }
    scanf("%lld",&MOD);
    rest=0;
    for(i=v[0];i>=1;i--)
    {
        rest=rest*10+v[i];
        rest%=MOD;
    }
    if(rest)
    {
        MOD-=rest;
        for(i=1;i<=v[0] || MOD;i++)
        {
            v[i]+=MOD;
            MOD=v[i]/10;
            v[i]%=10;
        }
        v[0]=i-1;
    }
    for(i=v[0];i>=1;i--)
        printf("%lld",v[i]);
    printf("\n");
    return 0;
}