Cod sursa(job #2277803)

Utilizator MEDOcapraBrindea Robert MEDOcapra Data 6 noiembrie 2018 20:59:19
Problema Next Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.13 kb
#include <iostream>
#include <cstring>
#include <fstream>

using namespace std;

ifstream fin ("next.in");
ofstream fout ("next.out");

const int MAXN = 1000031;

char s[MAXN];
int a[MAXN], r[MAXN], rf[MAXN];

int main()
{
    long long n;
    fin.getline(s, MAXN);
    fin >> n;
    int imp = 0;
    for(int i = 0; i < strlen(s); i++)
    {
        imp = imp*10 + s[i]-'0';
        if(imp >= n || imp == 0)
        {
            r[++r[0]] = imp/n;
            imp = imp%n;
        }
    }
    int rest = 0;
    if(imp != 0)
    {
        r[r[0]]++;
        r[r[0]-1]+=r[r[0]]/10;
        r[r[0]]%=10;
    }
    rf[0]=1;
    for(int i = r[0]; i >= 1; i--)
    {
        rf[rf[0]] = n*r[i]+rest;
        rest = rf[rf[0]]/10;
        rf[rf[0]]%=10;
        rf[0]++;
    }
    while (rest > 0) {
       rf[rf[0]++] = rest % 10;
       rest /= 10;
    }
    bool ok = false;
    for(int i = rf[0]; i >= 1; i--)
    {
        if(ok == true)
            fout << rf[i];
        if(rf[i] != 0 && ok == false)
        {
             fout << rf[i];
             ok = true;
        }
    }
    return 0;
}