Cod sursa(job #1487206)

Utilizator DobosDobos Paul Dobos Data 16 septembrie 2015 14:33:42
Problema Next Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("next.in");
ofstream fout("next.out");
short v[1000002];
unsigned long long D;
void div()
{
      int i, t = 0;
      for (i = v[0]; i > 0; i--, t %= D)
              v[i] = (t = t * 10 + v[i]) / D;
      for (; v[0] > 1 && !v[v[0]]; v[0]--);
}
void mul()
{
      int i, t = 0;
      for (i = 1; i <= v[0] || t; i++, t /= 10)
              v[i] = (t += v[i] * D) % 10;
      v[0] = i - 1;
}

int main()
{
    int i = 1,aux;
    char x;
    while(fin.get(x) && x != '\n'){
        v[i] = x - 48;
        i++;
    }
    fin >> D;
    v[0] = i - 1;
       for( i = 1; i <= v[0]/2; i++ ){
        aux = v[i];
        v[i] = v[v[0] - i + 1];
        v[v[0]-i + 1] = aux;
       }
    div();
    v[1] ++;
    i = 1;
    while( v[i] == 10){
        v[i] = 1;
        v[i+1]++;
    }
    mul();
    for(i = v[0]; i >= 1 ; i--)
        fout << v[i];

    return 0;
}