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
#include <cstdio>
#include <iterator>

#ifdef LOCAL
    #define dbg(...) fprintf(stderr, __VA_ARGS__)
#else
    #define dbg(...)
#endif

using namespace std;


int to_minutes_since_pstart(int d, int h, int m) {
    // P START: 23 00:00
    const int d_since_pstart = d - 23;
    int h_since_pstart = h;
    const int m_since_pstart = m;

    if (d >= 29 && h >= 3) {
        h_since_pstart -= 1;
    }

    return d_since_pstart * 1440 + h_since_pstart * 60 + m_since_pstart;
}



int main() {
    int x, d, h, m;
    scanf("%d %d %d %d", &x, &d, &h, &m);
    int start_timestamp = to_minutes_since_pstart(d, h, m);
    int end_timestamp = (x+1) * 1440;
    if (x == 5) {
        // last day tasks end 1 day late
        // but also 1 hour early due to time change
        end_timestamp += 1380; // 1440 - 60
    }
    printf("%d\n", end_timestamp - start_timestamp);
    return 0;
}