Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- #define FOR(i,a,b) for (int i = (a); i < (b); i++)
- #define RFOR(i,b,a) for (int i = (b)-1; i >= (a); i--)
- #define ITER(it,a) for (__typeof(a.begin()) it = a.begin(); it != a.end(); it++)
- #define FILL(a,value) memset(a, value, sizeof(a))
- #define SZ(a) (int)a.size()
- #define ALL(a) a.begin(), a.end()
- #define PB push_back
- #define MP make_pair
- typedef long long LL;
- typedef vector<int> VI;
- typedef pair<int, int> PII;
- const double PI = acos(-1.0);
- const int INF = 1000 * 1000 * 1000 + 7;
- const LL LINF = INF * (LL) INF;
- const int MAX = 100;
- const int MAXT = 24 * 60 * 60;
- int H[MAX], HT[MAX];
- int M[MAX], MT[MAX];
- int S[MAX], ST[MAX];
- int X[MAXT];
- int T(int h, int m, int s)
- {
- return h * 60 * 60 + m * 60 + s;
- }
- int main()
- {
- freopen("in.txt", "r", stdin);
- //ios::sync_with_stdio(false); cin.tie(0);
- int h, m, s;
- scanf("%d:%d:%d", &h, &m, &s);
- int tt = T(h, m, s);
- int hh;
- scanf("%d", &hh);
- FOR(i, 0, hh)
- {
- scanf("%d%d", &H[i], &HT[i]);
- }
- int mm;
- scanf("%d", &mm);
- FOR(i, 0, mm)
- {
- scanf("%d%d", &M[i], &MT[i]);
- }
- int ss;
- scanf("%d", &ss);
- FOR(i, 0, ss)
- {
- scanf("%d%d", &S[i], &ST[i]);
- }
- FILL(X, -1);
- FOR(i, 0, hh)
- FOR(j, 0, mm)
- FOR(k, 0, ss)
- {
- int time = T(i, j, k);
- int need = HT[i] + MT[j] + ST[k];
- X[time] = (time - need + MAXT) % MAXT;
- }
- int bst = INF;
- FOR(i, 0, MAXT)
- {
- if (X[i] == -1)continue;
- if (X[i] >= tt)bst = min(bst, i);
- else bst = min(bst, i + MAXT);
- }
- bst %= MAXT;
- printf("%d:%d:%d", bst / 60 / 60, (bst/60) % 60, bst %60);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement