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 |