Cod sursa(job #874497)

Utilizator h2g2Ford Prefect h2g2 Data 8 februarie 2013 17:40:25
Problema Pascal Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <iostream>
#include <fstream>
#include <string.h>
using namespace std;

int main() {
	ifstream f("pascal.in");
	ofstream g("pascal.out");
	
	int r, d, sol = 0, div[7], i, j, k;

	memset(div, 0, 7*sizeof(int));

	f>>r>>d;

	for(i=1; i*2 <= r; i++) {

		k = r - i + 1;
		while(k % 2 == 0)  k /= 2, div[2]++;
		while(k % 3 == 0)  k /= 3, div[3]++;
		while(k % 5 == 0)  k /= 5, div[5]++;

		k = i;
		while(k % 2 == 0)  k /= 2, div[2]--;
		while(k % 3 == 0)  k /= 3, div[3]--;
		while(k % 5 == 0)  k /= 5, div[5]--;

		div[4] = div[2] / 2;
		div[6] = min(div[2], div[3]);
		
		if(div[d] >= 1) sol+=2;
		if(div[d] >= 1 && i*2 == r) sol--;
	}

	g<<sol<<"\n";
	cout<<sol<<"\n";
	
	return 0;
}