Cod sursa(job #1927750)

Utilizator stefdascalescuStefan Dascalescu stefdascalescu Data 15 martie 2017 15:14:55
Problema Next Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <iostream>
#include <fstream>
#include <string.h>
 
using namespace std;
 
unsigned int n[1000001];
unsigned long long int d;
 
int main()
{
    ifstream fin ("next.in");
    ofstream fout ("next.out");
    char cit[1000001];
    fin.getline(cit,1000001);
    n[0]=strlen(cit);
    for (int i=n[0]-1; i>=0; i--)
        n[n[0]-i]=cit[i]-'0';
    fin>>d;
    unsigned long long int rest=0;
    for (unsigned int i=n[0]; i>0; i--)
        rest=(10*rest+n[i])%d;
    if (rest==0)
        fout<<cit;
    else
    {
        unsigned long long int nr=d-rest,transport;
        for (unsigned int i=1; i<=n[0]; i++)
        {
            transport=n[i]+nr;
            n[i]=transport%10;
            nr=transport/10;
        }
        while (nr!=0)
        {
            n[++n[0]]=nr%10;
            nr/=10;
        }
        for (unsigned int i=n[0]; i>=1; i--)
            fout<<n[i];
    }
    return 0;
}