5719 2023. 09. 09 19:54:10 kukkerman Világnaptár (45 pont) cpp14 Elfogadva 45/45 3ms 3576 KiB
#include <iostream>
#include <array>

void beolvas(std::istream &in, int &ev, int &ho, int &nap) {
    in >> ev >> ho >> nap;
}

void feldolgoz(int ev, int ho, int nap) {
    static constexpr std::array<int, 12> gergely{
        31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31
    };

    static constexpr std::array<int, 12> vilag{
        31, 30, 30, 31, 30, 30, 31, 30, 30, 31, 30, 30
    };

    const bool szokoev = ev % 4 == 0;

    int n = nap;
    for (auto i = 1; i < ho; i++) {
        n += gergely[i - 1];
    }
    if (szokoev && ho >= 3) {
        n++;
    }

    int vh = 1;
    if (szokoev) {
        while (vh <= 6 && n > vilag[vh - 1]) {
            n -= vilag[vh - 1];
            vh++;
        }

        if (vh > 6) {
            n--;
        }
    }
    while (vh <= 12 && n > vilag[vh - 1]) {
        n -= vilag[vh - 1];
        vh++;
    }

    std::cout << ev << ' ';
    if (vh == 13) {
        std::cout << " 12 VN";

    } else if (n == 0) {
        std::cout << " 6 SZN";

    } else {
        std::cout << vh << ' ' << n;
    }
    std::cout << std::endl;
}

int main() {
    int ev, ho, nap;

    beolvas(std::cin, ev, ho, nap);
    feldolgoz(ev, ho, nap);

    return 0;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 45/45
1 Elfogadva 0/0 3ms 1748 KiB
2 Elfogadva 0/0 2ms 1912 KiB
3 Elfogadva 0/0 2ms 2160 KiB
4 Elfogadva 2/2 2ms 2332 KiB
5 Elfogadva 2/2 2ms 2420 KiB
6 Elfogadva 3/3 2ms 2416 KiB
7 Elfogadva 3/3 2ms 2420 KiB
8 Elfogadva 3/3 2ms 2548 KiB
9 Elfogadva 3/3 2ms 2788 KiB
10 Elfogadva 3/3 2ms 2840 KiB
11 Elfogadva 3/3 2ms 2844 KiB
12 Elfogadva 3/3 2ms 2872 KiB
13 Elfogadva 3/3 2ms 2984 KiB
14 Elfogadva 3/3 2ms 3056 KiB
15 Elfogadva 3/3 2ms 3172 KiB
16 Elfogadva 3/3 2ms 3184 KiB
17 Elfogadva 3/3 3ms 3376 KiB
18 Elfogadva 2/2 2ms 3500 KiB
19 Elfogadva 3/3 2ms 3576 KiB