Cod sursa(job #1295388)

Utilizator EpictetStamatin Cristian Epictet Data 19 decembrie 2014 13:15:36
Problema Next Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <fstream>
#include <string>
using namespace std;
ifstream fin ("next.in");
ofstream fout ("next.out");
long long D;
int N[1000010];
string S;

long long Restul(int A[], long long D)
{
    int i, t = 0;
    for (i = A[0]; i>=1; i--)
    {
        t = (t * 10 + A[i]) % D;
    }
    return t;
}

void Add(int A[], long long nr)
{
    int i = 0, t = 0;
    while (nr || t)
    {
        A[++i] = (t += A[i] + (nr % 10)) % 10;
        t /= 10;
        nr /= 10;
    }
}

void Afisare(int A[])
{
    for (int i=A[0]; i>=1; i--) fout << A[i];
    fout << '\n';
}

int main()
{
    fin >> S >> D;
    N[0] = S.size();
    for (int i=1; i<=N[0]; i++) N[i] = S[N[0]-i] - '0';

    if (Restul(N, D)) Add(N, D - Restul(N, D));
    Afisare(N);

    fout.close();
    return 0;
}