Cod sursa(job #528016)

Utilizator marta_diannaFII Filimon Marta Diana marta_dianna Data 1 februarie 2011 20:00:21
Problema Next Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include<fstream.h>
#define NMAX 1000000

char c[NMAX];
int a[NMAX], p, u, i, aux;
long long d, r;

ifstream f("next.in");
ofstream g("next.out");

long long rest()
{
	int i;
	long long r=0;
	for (i=1; i<=a[0]; ++i)
		r=((r*10)+a[i])%d;
	return r;
}

void aduna(long long x)
{
	int i, r=0;
	for (i=1; i<=a[0]; ++i)
	{
		a[i]=a[i]+x%10+r;
		x/=10;
		r=a[i]/10;
		a[i]%=10;
	}
	if (r>0) a[++a[0]]=r;
}

int main()
{
	f.getline(c, NMAX);
	f>>d;
	a[0]=strlen(c);
	for (p=1, u=0; u<a[0]; ++u, ++p) a[p]=c[u]-'0';
	r=rest();
	for (p=1, u=a[0]; p<u; ++p, --u) 
	{
		aux=a[p];
		a[p]=a[u];
		a[u]=aux;
	}
	aduna(d-r);
	for (i=a[0]; i>0; --i) g<<a[i];
	g<<"\n";
	f.close();
	g.close();
	return 0;
}