Cod sursa(job #1744807)

Utilizator TimitocArdelean Andrei Timotei Timitoc Data 20 august 2016 15:40:09
Problema Pascal Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <iostream>
#include <cstdio>

using namespace std;

int power[10];
int r, d, sol;

void solve()
{
    for (int i = 1; i <= r/2; i++) {
		int st = (d==4||d==6) ? 2 : d;
        for (int j = st; j <= (d==6 ? 3 : st); j++) {
			int sus = r-i+1, jos = i;
            while (sus % j == 0)
				power[j]++, sus /= j;
			while (jos % j == 0)
				power[j]--, jos /= j;
        }
        if (d == 2) sol += !!(power[2]);
        else if (d == 3) sol += !!(power[3]);
        else if (d == 4) sol += !!(power[2] >> 1);
        else if (d == 5) sol += !!(power[5]);
        else sol += !!power[2] && !!power[3];
    }
    if (sol && !(r&1))
		sol = (sol << 1) - 1;
	else
		sol <<= 1;
}

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

	scanf("%d %d", &r, &d);
    solve();
    printf("%d", sol);

    return 0;
}