Pagini recente » Istoria paginii runda/pregatire_oji_11-12_3 | Romanii medaliati la IOI | Cod sursa (job #1561808) | Cod sursa (job #2949768) | Cod sursa (job #179558)
Cod sursa(job #179558)
#include<stdio.h>
#include<fstream.h>
#include<iostream.h>
#include<string.h>
#define MAX 1500000
int v[MAX],divz[20];
long long i,d,rest;
void add(int A[], int B[])
{
long long i, t = 0;
for (i=1; i<=A[0] || i<=B[0] || t; i++, t/=10)
A[i] = (t += A[i] + B[i]) % 10;
A[0] = i - 1;
}
long long mod(int A[], long long B)
{
long long i, t = 0;
for (i = A[0]; i > 0; i--)
t = (t * 10 + A[i]) % B;
return t;
}
main()
{
fstream fin("next.in",ios::in);
freopen("next.out","w",stdout);
char *s; s=new char[MAX];
fin.getline(s,MAX);
for(i=strlen(s)-1; i>=0; i--) v[ ++v[0] ] = s[i] - '0';
fin>>d;
rest = mod(v,d); d-=rest;
while(d)
{ divz[++divz[0]]=d%10; d/=10; }
add(v,divz);
for(i=v[0]; i>0; i--) printf("%d",v[i]);
printf("\n"); return 0;
}