Cod sursa(job #2962997)

Utilizator alexvali23alexandru alexvali23 Data 9 ianuarie 2023 22:49:22
Problema Next Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <fstream>
#include <cstring>

using namespace std;
const int NMAX = 1000001;
ifstream f("next.in");
ofstream g("next.out");
unsigned long long D;
char s[NMAX];
int N[NMAX];
int Nr, cNr;
unsigned long Mod(int A[], unsigned long X)
{
    int i;
    unsigned long R = 0;
    for(i = A[0]; i; i--)
        R = (10 * R + A[i]) % X;
    return R;
}
void Adunare(unsigned long long b)
{
    int i = 1;
    while(b)
    {
        b += N[i];
        N[i] = b % 10;
        b /= 10;
        i++;
    }
    i--;
    if(i > N[0])
    {
        N[0] = i;
    }
}
int main()
{
    f.getline(s, NMAX);
    f >> D;
    Nr = strlen(s);
    cNr = Nr;
    for(int i = 0; s[i] != 0; i++)
        if(s[i] >= '0' && s[i] <= '9')N[Nr--] = s[i] - '0';
    N[0] = cNr;
    unsigned long long R = Mod(N, D);
    D -= R;
    Adunare(D);
    for(int i = N[0]; i >= 1; i--)
        g << N[i];
    return 0;
}