Cod sursa(job #273914)

Utilizator ooctavTuchila Octavian ooctav Data 9 martie 2009 10:31:35
Problema Next Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <stdio.h>
#include <string.h>

char c[1000000];
int  c2[1000000];
long long d,rest=0;

void obtinere()
{
	long long  i,nr=1;
	char p;
	do
	{
		fread(&p,1,1,stdin);
		c[nr++]=p;
		c2[0]++;
	}while(p!='\n');
	c2[0]--;
	nr=1;
	for(i=c2[0];i>=1;i--)
		c2[nr++]=c[i]-'0';
	scanf("%lld",&d);
	
}
void restimpartire()
{
	long long i,t=0;
	for(i=c2[0];i>0;i--)
		t=(t*10+c2[i])%d;
	rest=t;
}

void suma()
{
	long long i,t=0;
	for(i=1;i<=c2[0] || d || t;i++,t=t/10)
	{
		t=t+c2[i]+d%10;
		c2[i]=t%10;
		d=d/10;
	}

}
	
int main()
{
	long long i;
	freopen("next.in","r",stdin);
	freopen("next.out","w",stdout);
	obtinere();
	restimpartire();
	if(!rest)
		for(i=c2[0];i>=1;i--)
			printf("%d",c2[i]);
	else
	{
		d=d-rest;
		suma();
		for(i=c2[0];i>=1;i--)
			printf("%d",c2[i]);
	}
	printf("\n");
	return 0;
}