Cod sursa(job #1789865)

Utilizator MotoAMotoi Alexandru MotoA Data 27 octombrie 2016 16:30:36
Problema Next Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("next.in");
ofstream g("next.out");
long long D,n=1,R;
char c;
int a[1000010];
void Mod(int a[], long long D)
{
    long long i;
    for (i=2; i<=n; i++)
        R=(10*R+a[i])%D;
}
void adun(int a[], long long R)
{
    long long t=0,i;
    for( i=n; i; i--)
    {
        t+=a[i]+R%10;
        R/=10;
        a[i]=t%10;
        t/=10;
        if(R==0)break;
    }
    while(t>0)
    {
        i--;
        t+=a[i];
        a[i]=t%10;
        t/=10;
    }
}
void afisare()
{
    if(a[1]!=0)g<<a[1];
    for(long long i=2; i<=n; i++)
        g<<a[i];
}
int main()
{
    f.get(c);
    while(c != '\n')
    {
        a[++n]=c-48;
        f.get(c);
    }
    f>>D;
    Mod(a,D);
    R=D-R;
    adun(a,R);
    afisare();
}