Cod sursa(job #2258190)

Utilizator Cyg_PEduardPetcu Eduard Cyg_PEduard Data 10 octombrie 2018 23:17:06
Problema Next Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.09 kb
#include <fstream>
#include <cstring>
using namespace std;
ifstream fin("next.in");
ofstream fout("next.out");
///12288KB=10.000.000B(10milioane B)
const int NMAX=1000003;
char s[NMAX];
int a[NMAX];
void citire(int a[NMAX])
{
    int n,i;
    fin.getline(s,NMAX);
    n=strlen(s);
    a[0]=0;
    for(i=n;i>=1;i--)
        a[++a[0]]=s[i-1]-'0';
}
void print(int a[])
{
    int i;
    for(i=a[0];i>=1;i--)
        fout<<a[i];
}
long long cat(int a[],long long x)
{
    long long r;
    int i;
    r=0;
    for(i=a[0];i>=1;i--)
    {
        r=r*10+a[i];
        r=r%x;
    }
    return r;
}
void suma(int a[],long long x)
{
    int tr=0,i=1;
    while(x)
    {
        a[i]=a[i]+x%10+tr;
        tr=0;
        x=x/10;
        if(a[i]>9)
        {
            tr=1;
            a[i]%=10;
            a[i+1]+=1;
        }
        i++;
    }
}
int main()
{
    unsigned long long D,rest;
    citire(a);
    fin>>D;

    rest=D-cat(a,D);
    if(rest==D)
      {
       print(a);
       return 0;
      }
    suma(a,rest);
    print(a);
    return 0;
}