Cod sursa(job #1788638)

Utilizator andreistanStan Andrei andreistan Data 26 octombrie 2016 11:30:49
Problema Next Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <iostream>
#include <fstream>
using namespace std;

const int CMAX=1000002;

ifstream f("next.in");
ofstream g("next.out");

char N[CMAX];
int lg;
long long D;

void citire()
{
    char c;
    lg=0;
    f.get(c);
    while(c!='\n')
    {
        N[++lg]=c-'0';
        f.get(c);
    }
    int i=lg, j=1;
    while(j<i)
        swap(N[j++],N[i--]);
}

long long mod(char A[],int lg, long long B)
{
      int i;
      long long t = 0;
      for (i = lg; i > 0; i--)
              t = (t * 10 + A[i]) % B;
      return t;
}

void add(char A[], int &lg, long long r)
{   int i;
    long long t=r;
    for (i=1; i<=lg || t; i++, t/=10)
              A[i] = (t += A[i]) % 10;
      lg = i - 1;
}

int main()
{
    citire();
    f>>D;
    long long rest=mod(N,lg,D);
    if(rest>0)
        add(N,lg,D-rest);
    for(int i=lg;i>=1;i--)
        g<<(int)N[i];
    return 0;
}