Cod sursa(job #3177860)

Utilizator susanSusan Ssssss susan Data 30 noiembrie 2023 13:09:57
Problema Pascal Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.33 kb
#include<fstream>

using namespace std;

ifstream f("pascal.in");
ofstream g("pascal.out");


int main() {
    int r, d, p = 0, q = 0, s = 0;
    f >> r >> d;

    if (d == 2 || d == 3 || d == 5)
        for (int i = 1; i <= r / 2; ++i) {
            for (int j = r - i + 1; j % d == 0; ++p, j /= d);
            for (int j = i; j % d == 0; --p, j /= d);
            s += (p >= 1);
        }
    if (d == 4)
        for (int i = 1; i <= r / 2; ++i) {
            for (int j = r - i + 1; j % 2 == 0; ++p, j /= 2);
            for (int j = i; j % 2 == 0; --p, j /= 2);
            s += (p >= 2);
        }
    else if (d == 6)
        for (int i = 1; i <= r / 2; ++i) {
            for (int j = r - i + 1; j % 2 == 0 || j % 3 == 0;) {
                if (j % 2 == 0) {
                    ++p;
                    j /= 2;
                }
                if (j % 3 == 0) {
                    ++q;
                    j /= 3;
                }
            }
            for (int j = i; j % 2 == 0 || j % 3 == 0;) {
                if (j % 2 == 0) {
                    --p;
                    j /= 2;
                }
                if (j % 3 == 0) {
                    --q;
                    j /= 3;
                }
            }
            s += (p >= 1) && (q >= 1);
        }
    s *= 2;
    if (r % 2 == 0)
        --s;

    g << s;
    return 0;
}