Cod sursa(job #5471)

Utilizator webspiderDumitru Bogdan webspider Data 12 ianuarie 2007 16:41:22
Problema Pascal Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.99 kb
#include <iostream>

using namespace std;

int put[5000001][3];
short logm[5000001][3];
int k,d;
int i,j;
int x,nr;
int u;
int a[]={2,3,5};

int main()
{
	freopen("pascal.in","r",stdin);
	freopen("pascal.out","w",stdout);

	scanf("%d %d\n", &k, &d);

	for ( i = 1; i <= k; i++ )
	{
		for ( j = 0; j <= 2; j++ )
		{
			u = a[j];
			put[i][j] = put[i-1][j];
			if ( i % u == 0 )
				logm[i][j] = logm[i/u][j] + 1;
			put[i][j] += logm[i][j];
			
		}
	}
	for ( i = 1; i <= k; i++ )
	{
		if ( d == 2 ) 
			if ( put[k][0] - ( put[k-i][0] + put[i][0] ) > 0 )
				nr++;
		
		if ( d == 3 )
			if ( put[k][1] - ( put[k-i][1] + put[i][1] ) > 0 )
				nr++;

		if ( d == 4 )
			if ( put[k][0] - ( put[k-i][0] + put[i][0] ) > 1 )
				nr++;

		if ( d == 5 )
			if ( put[k][2] - ( put[k-i][2] + put[i][2] ) > 0 )
				nr++;
		if ( d == 6 )
			if ( put[k][0] - ( put[k-i][0] + put[i][0] ) > 0 && put[k][1] - ( put[k-i][1] + put[i][1] ) > 0 )
				nr++;
	}

	printf("%d\n", nr );

	fclose(stdout);
	fclose(stdin);

	return 0;
}