Cod sursa(job #733076)

Utilizator SebiSebiPirtoaca George Sebastian SebiSebi Data 11 aprilie 2012 13:39:41
Problema Next Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include<iostream>
#include<fstream>
#include<string.h>
using namespace std;
int a[1000001],b[101];
void suma()
{
	long long i,t;
	t=0;
	for(i=1;i<=a[0]||i<=b[0]||t;i++,t=t/10)
		a[i]=(t+=a[i]+b[i])%10;
	a[0]=i-1;
}
long long rest(long long b)
{
	long long i,t;
	t=0;
	for(i=a[0];i>=1;i--)
		t=(t*10+a[i])%b;
	return t;
}
char c[1000005];
int main ()
{
	long long r,d,m,i;
	ifstream f("next.in");
	ofstream g("next.out");
	f>>c>>d;
	f.close();
	m=strlen(c)-1;
	a[0]=m+1;
	for(i=0;i<=m;i++)
		a[m-i+1]=c[i]-48;
	r=rest(d);
	if(r!=0) {
		r=d-r;
		while(r) {
			b[0]++;
			b[b[0]]=r%10;
			r=r/10;
		}
		suma();
	}
	for(i=a[0];i>=1;i--)
		g<<a[i];
	g.close();
	return 0;
}