Cod sursa(job #1039557)

Utilizator SebiCarhatCarhat Eusebiu SebiCarhat Data 23 noiembrie 2013 11:51:33
Problema Next Scor 100
Compilator cpp Status done
Runda cei_mici4 Marime 0.89 kb
#include <iostream>
#include <fstream>
#include <cstring>
#include <algorithm>
using namespace std;
   
const int NMAX = 1000050;
   
int V[NMAX], W[NMAX];
long long D;
char S[NMAX];
   
long long Mod()
{
    int i;
    long long T = 0;
    for(i = V[0]; i >= 1; -- i)
        T = (1LL * T * 10 + V[i]) % D;
    return T;
}
   
void Add()
{
    int i, T = 0;
    for(i = 1; i <= V[0] || i <= W[0] || T; i ++, T /= 10)
        V[i] = (T += V[i] + W[i]) % 10;
    V[0] = i - 1;
}
   
int main()
{
    ifstream cin("next.in");
    ofstream cout("next.out");
   
    cin >> (S + 1);
    cin >> D;
    int N = strlen(S + 1);
    for(int i = N; i; -- i)
        V[++V[0]] = S[i] - '0';
   
    long long R = Mod(), X = (D - R) % D;
    while(X) W[++W[0]] = X % 10, X /= 10;
   
    Add();
   
    for(int i = V[0]; i; -- i)
        cout << V[i];
   
    return 0;
}