Advertisement
Guest User

Untitled

a guest
Nov 25th, 2017
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.61 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. #define FOR(i,a,b) for (int i = (a); i < (b); i++)
  5. #define RFOR(i,b,a) for (int i = (b)-1; i >= (a); i--)
  6. #define ITER(it,a) for (__typeof(a.begin()) it = a.begin(); it != a.end(); it++)
  7. #define FILL(a,value) memset(a, value, sizeof(a))
  8.  
  9. #define SZ(a) (int)a.size()
  10. #define ALL(a) a.begin(), a.end()
  11. #define PB push_back
  12. #define MP make_pair
  13.  
  14. typedef long long LL;
  15. typedef vector<int> VI;
  16. typedef pair<int, int> PII;
  17.  
  18. const double PI = acos(-1.0);
  19. const int INF = 1000 * 1000 * 1000 + 7;
  20. const LL LINF = INF * (LL) INF;
  21.  
  22. const int MAX = 100;
  23. const int MAXT = 24 * 60 * 60;
  24.  
  25. int H[MAX], HT[MAX];
  26. int M[MAX], MT[MAX];
  27. int S[MAX], ST[MAX];
  28.  
  29. int X[MAXT];
  30.  
  31. int T(int h, int m, int s)
  32. {
  33. return h * 60 * 60 + m * 60 + s;
  34. }
  35.  
  36.  
  37. int main()
  38. {
  39. freopen("in.txt", "r", stdin);
  40. //ios::sync_with_stdio(false); cin.tie(0);
  41. int h, m, s;
  42. scanf("%d:%d:%d", &h, &m, &s);
  43. int tt = T(h, m, s);
  44. int hh;
  45. scanf("%d", &hh);
  46. FOR(i, 0, hh)
  47. {
  48. scanf("%d%d", &H[i], &HT[i]);
  49. }
  50. int mm;
  51. scanf("%d", &mm);
  52. FOR(i, 0, mm)
  53. {
  54. scanf("%d%d", &M[i], &MT[i]);
  55. }
  56. int ss;
  57. scanf("%d", &ss);
  58. FOR(i, 0, ss)
  59. {
  60. scanf("%d%d", &S[i], &ST[i]);
  61. }
  62. FILL(X, -1);
  63. FOR(i, 0, hh)
  64. FOR(j, 0, mm)
  65. FOR(k, 0, ss)
  66. {
  67. int time = T(i, j, k);
  68. int need = HT[i] + MT[j] + ST[k];
  69. X[time] = (time - need + MAXT) % MAXT;
  70. }
  71. int bst = INF;
  72. FOR(i, 0, MAXT)
  73. {
  74. if (X[i] == -1)continue;
  75. if (X[i] >= tt)bst = min(bst, i);
  76. else bst = min(bst, i + MAXT);
  77. }
  78. bst %= MAXT;
  79. printf("%d:%d:%d", bst / 60 / 60, (bst/60) % 60, bst %60);
  80.  
  81.  
  82. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement