Cod sursa(job #2294714)

Utilizator andreisavulescuSavulescu Andrei andreisavulescu Data 2 decembrie 2018 18:53:32
Problema Next Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.01 kb
#include <fstream>
#include <cstring>

using namespace std;
ifstream f("next.in");
ofstream g("next.out");
const int NMAX=10000001;

long long k;
int A[NMAX], K[NMAX];
char c[NMAX];

void rest(long long D, long long &CAT)
{
    long long  T = 0;
    for(int i = A[0]; i > 0; i--)
        {
            T = T * 10 + A[i];
            T %= D;
        }
    CAT = D - T;
}

void adunare()

{
    int T=0;
    if(A[0] < K[0])
        A[0] = K[0];
     for(int i = 1; i <= A[0]; i++)
    {
        A[i] += T + K[i];
        T = A[i] / 10;
        A[i] %= 10;
    }
    if(T > 0) A[++A[0]] = T;
}

int main()
{
    f >> c;
    k = strlen(c);
    A[0] = k;
    for(int i = k - 1; i >= 0; i--)
        A[k - i]= c[i] - '0';
    long long D, R;
    f >> D;
    rest(D, R);
    if(D != R)
    {
        while(R)
        {
            K[++K[0]] = R % 10;
            R /= 10;
        }
        adunare();
    }
    for(int i = A[0]; i >= 1; i--)
        g << A[i];
    return 0;
}