Cod sursa(job #2109312)

Utilizator lixiLixandru Andrei lixi Data 19 ianuarie 2018 16:23:04
Problema Next Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <iostream>
#include<fstream>
#include<string.h>
using namespace std;
ifstream f("next.in");
ofstream g("next.out");
char s[1000003];
int  a[1000003];
long long d;
long long Divide(int A[], long long X)
/* A <- A/X si intoarce A%X */
{
    long long R = 0;
    for(int i = A[0]; i; i--)
        R = (10 * R + A[i]) % X;
    return R;
}
void Add(int A[], long long T)
/* A <- A+B */
{
    int i;
    for(i = 1; i <= A[0]; i++)
    {
        T += A[i];
        A[i] = T % 10;
        T /= 10;
    }
    while(T > 0)
    {
        A[++A[0]] = T % 10;
        T /= 10;
    }
}

int main()
{
    f.getline(s, 1000003);
    f >> d;
    a[0] = strlen(s);
    for(int i = a[0]; i >= 1; i--)
        a[i] = s[a[0] - i] - 48;
    long long r = Divide(a, d);
    if(r > 0)
        Add(a, d-r);
    for(int i = a[0]; i >= 1; i--)
        g << a[i];

return 0;
}