Cod sursa(job #760082)

Utilizator paunmatei7FMI Paun Matei paunmatei7 Data 20 iunie 2012 08:38:24
Problema Next Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include<stdio.h>
#include<string.h>
int n,A[1000005];
long long D;
char s[1000005];
void Citire()
{
	int i;
	freopen("next.in","r",stdin);
	freopen("next.out","w",stdout);
	gets(s);
	scanf("%lld",&D);
	n=strlen(s);
	for(i=1;i<=n;i++)
		A[i]=s[i-1]-'0';
}
long long Rest()
{
	int i;
	long long r=0;
	for(i=1;i<=n;i++)
		r=(r*10+A[i])%D;
	return r;
}
void Aduna(long long x)
{
	int i;
	for(i=n;i>0 || x;i--,x=x/10)
		A[i]=(x+=A[i])%10;
}
void Rezolvare()
{
	long long rest;
	rest=Rest();
	if(rest)
	{
		rest=D-rest;
		rest=rest%D;
		Aduna(rest);
	}
}
void Afisare()
{
	int i;
	if(A[0]) i=0;
		else i=1;
	for(;i<=n;i++)
		printf("%d",A[i]);
}

int main()
{
	Citire();
	Rezolvare();
	Afisare();
	return 0;
}