#include <iostream>
using namespace std;
int main() {
int x, d, h, m;
// x - numer rundy, d - dzieñ, h - godzina, m - minuta
if (!(cin >> x >> d >> h >> m)) return 0;
// Ustalamy datê zakoñczenia rundy (dzieñ, godzina, minuta)
int end_d, end_h = 24, end_m = 0;
if (x >= 1 && x <= 4) {
// Rundy 1-4 koñcz¹ siê "o pó³nocy" dnia d+1, d+2 itd. zgodnie z tabel¹
// Wg tabeli: R1 koñczy siê 24.03, R2 - 25.03, R3 - 26.03, R4 - 27.03
// Mo¿na to zapisaæ jako end_d = x + 23
end_d = x + 23;
} else {
// Runda 5 koñczy siê 29 marca o 23:59:59 (przyjmujemy 24:00 dla u³atwienia obliczeñ minut)
end_d = 29;
}
// Obliczamy ca³kowit¹ liczbê minut od pocz¹tku marca do momentu startu i koñca
// Traktujemy ka¿dy dzieñ jako 24h (zmianê czasu uwzglêdnimy póŸniej)
long long start_total_minutes = (long long)d * 24 * 60 + h * 60 + m;
long long end_total_minutes = (long long)end_d * 24 * 60 + end_h * 60 + end_m;
long long diff = end_total_minutes - start_total_minutes;
// Uwzglêdnienie zmiany czasu:
// Jeœli Bajtazar zacz¹³ przed 2:00 rano 29 marca, a runda koñczy siê po 2:00 rano 29 marca,
// to "straci³" godzinê (60 minut), bo zegarki przesuniêto do przodu.
// Moment zmiany czasu w minutach od pocz¹tku miesi¹ca:
long long dst_change = 29LL * 24 * 60 + 2 * 60;
if (start_total_minutes < dst_change && end_total_minutes > dst_change) {
diff -= 60;
}
cout << diff << endl;
return 0;
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | #include <iostream> using namespace std; int main() { int x, d, h, m; // x - numer rundy, d - dzieñ, h - godzina, m - minuta if (!(cin >> x >> d >> h >> m)) return 0; // Ustalamy datê zakoñczenia rundy (dzieñ, godzina, minuta) int end_d, end_h = 24, end_m = 0; if (x >= 1 && x <= 4) { // Rundy 1-4 koñcz¹ siê "o pó³nocy" dnia d+1, d+2 itd. zgodnie z tabel¹ // Wg tabeli: R1 koñczy siê 24.03, R2 - 25.03, R3 - 26.03, R4 - 27.03 // Mo¿na to zapisaæ jako end_d = x + 23 end_d = x + 23; } else { // Runda 5 koñczy siê 29 marca o 23:59:59 (przyjmujemy 24:00 dla u³atwienia obliczeñ minut) end_d = 29; } // Obliczamy ca³kowit¹ liczbê minut od pocz¹tku marca do momentu startu i koñca // Traktujemy ka¿dy dzieñ jako 24h (zmianê czasu uwzglêdnimy póŸniej) long long start_total_minutes = (long long)d * 24 * 60 + h * 60 + m; long long end_total_minutes = (long long)end_d * 24 * 60 + end_h * 60 + end_m; long long diff = end_total_minutes - start_total_minutes; // Uwzglêdnienie zmiany czasu: // Jeœli Bajtazar zacz¹³ przed 2:00 rano 29 marca, a runda koñczy siê po 2:00 rano 29 marca, // to "straci³" godzinê (60 minut), bo zegarki przesuniêto do przodu. // Moment zmiany czasu w minutach od pocz¹tku miesi¹ca: long long dst_change = 29LL * 24 * 60 + 2 * 60; if (start_total_minutes < dst_change && end_total_minutes > dst_change) { diff -= 60; } cout << diff << endl; return 0; } |
English