Cod sursa(job #2108281)

Utilizator MihaelaCismaruMihaela Cismaru MihaelaCismaru Data 18 ianuarie 2018 02:05:14
Problema Pascal Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.32 kb
#include<fstream>
using namespace std;
ifstream in ("pascal.in");
ofstream out ("pascal.out");
int k,d,fact[6],sol,y,i;
int main (void) {
    in >> k >> d;
    i = k;
    for (int j = 0; j <= k/2; j ++) {
        if (j > 0) {
            if (d == 4) {
                if (fact[2] > 1) {
                    sol +=2;
                    if (k%2 == 0 && j == k/2) {
                        sol--;
                    }
                }
            }
            else
            if (d == 6) {
                if (fact[2] > 0 && fact[3] > 0) {
                    sol +=2;
                    if (k%2 == 0 && j ==k/2) {
                        sol--;
                    }
                }
            }
            else {
                if (fact[d] > 0) {
                    sol +=2;
                    if (k%2 == 0 && j ==k/2) {
                        sol--;
                    }
                }
            }
        }

        for (int h = 2; h <= 5; h ++) {
            if (h == 4) continue;
            y = j+1;
            while (y % h == 0) {
                fact[h] --;
                y /= h;
            }
            y = i-j;
            while (y % h == 0) {
                fact[h] ++;
                y /= h;
            }
        }
    }


    out << sol;
    return 0;
}