Cod sursa(job #1524130)

Utilizator nedelcu11Nedelcu Mihai Vlad nedelcu11 Data 13 noiembrie 2015 16:19:42
Problema Next Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <fstream>
#include <algorithm>
#include <cstring>
#define D 40000
using namespace std;
ifstream f("next.in");
ofstream g("next.out");
typedef int Huge[1000010];
Huge a;
long long d,r;
int n,i;
char c=0;
long long Mod(Huge A, long long X)
{ int i;
  long long R=0;
  for (i=A[0];i;i--)
    R=(10*R+A[i])%X;
  return R;
}
int main()
{   f.get(c);
    while(c!='\n')
    {   a[++a[0]]=c-'0';
        f.get(c);
    }
    reverse(a+1,a+a[0]+1);
    f>>d;
    r=Mod(a,d);
    if(r)
    {   long long x=d-r;
        long long k=1;
        a[k]+=x;
        long long t=a[k]/10;
        a[k]%=10;
        while(t!=0 and k<=a[0])
        {   a[++k]+=t;
            t=a[k]/10;
            a[k]%=10;
        }
        if(t==1) a[++a[0]]=1;
    }
    for(int i=a[0];i>=1;i--) g<<a[i];
    return 0;
}