Cod sursa(job #2112362)

Utilizator AlexandruabcdeDobleaga Alexandru Alexandruabcde Data 23 ianuarie 2018 13:29:41
Problema Next Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f ("next.in");
ofstream g ("next.out");
int n[1000002],nrn,i,b[20],nrb;
long long d,rest;
char x;
void adun ()
{
    nrb=0;
    rest=0;
    while (d>0)
    {
        nrb++;
        b[nrb]=d%10;
        d=d/10;
    }
    i=1;
    for (i=1;i<=nrn && (i<=nrb || rest>0);i++)
    {
        rest=rest+n[i]+b[i];
        n[i]=rest%10;
        rest=rest/10;
    }
    for (i=nrn;i>=1;i--) g<<n[i];
}
int main()
{
    f>>x;
    while (x!='\n')
    {
        nrn++;
        n[nrn]=x-'0';
        f.get(x);
    }
    f>>d;
    reverse(1+n,n+nrn+1);
    rest=0;
    i=nrn;
    while (i>=1)
    {
        rest=rest*10+n[i];
        rest=rest%d;
        i--;
    }
    if (rest>0)
    {
        d=d-rest;
        adun();
    }
    else
    {
        for (i=nrn;i>=1;i--)
        {
            g<<n[i];
        }
    }
    return 0;
}