Cod sursa(job #602821)

Utilizator SteveStefan Eniceicu Steve Data 13 iulie 2011 12:47:58
Problema Pascal Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.05 kb
#include <fstream.h>

int prim=2;

void aflare(int asdf)
{
	if (asdf == 6)
	{
		prim=3;
		return;
	}
	if (asdf == 5)
	{
		prim=5;
		return;
	}
	if (asdf == 3)
	{
		prim=3;
	}
	return;
}

int main()
{
	long R, i, j, ptR=0, ptR2=0, X, Y, numere=0, auxiliar, auxiliar2;
	int D;
	ifstream fin;
	fin.open("pascal.in");
	fin>>R>>D;
	fin.close();
	aflare(D);
	if (D == 6)
	{
		j=R;
		while (j)
		{
			j/=2;
			ptR2+=j;
		}
	}
	j=R;
	while (j)
	{
		j/=prim;
		ptR+=j;
	}
	if (D == 4) ptR/=2;
	for (i=1; i<R; i++)
	{
		auxiliar=1;
		j=i;
		X=0;
		while (j)
		{
			j/=prim;
			X+=j;
		}
		j=R-i;
		while (j)
		{
			j/=prim;
			X+=j;
		}
		if (D == 6)
		{
			Y=0;
			j=i;
			auxiliar=0;
			while (j)
			{
				j/=2;
				Y+=j;
			}
			j=R-i;
			while (j)
			{
				j/=2;
				Y+=j;
			}
			if (ptR2 > Y) auxiliar=1;
		}
		if (D == 4)
		{
			X/=2;
		}
		if ((ptR > X) && (auxiliar))
		{
			numere++;
		}
	}
	ofstream fout;
	fout.open("pascal.out");
	fout<<numere;
	fout.close();
	return 0;
}