fork download
  1. #include "testlib.h"
  2. #include <bits/stdc++.h>
  3. #include <ext/pb_ds/assoc_container.hpp>
  4. #include <ext/pb_ds/tree_policy.hpp>
  5.  
  6.  
  7. #define ll long long
  8. #define ld long double
  9. #define F first
  10. #define S second
  11. #define pb push_back
  12. #define sqr(x) (x) * (x)
  13.  
  14. using namespace std;
  15. using namespace __gnu_pbds;
  16.  
  17. mt19937_64 gen(time(0));
  18.  
  19. int func(int x)
  20. {
  21. return gen() % x;
  22. }
  23.  
  24. typedef tree<
  25. pair <int, int>,
  26. null_type,
  27. less<pair <int, int>>,
  28. rb_tree_tag,
  29. tree_order_statistics_node_update>
  30. ordered_set;
  31.  
  32. //const int mod = 1e9 + 7;
  33.  
  34.  
  35. ld score(ll a, ll b)
  36. {
  37. if (a == b)
  38. {
  39. return 10.;
  40. }
  41. return ceil(((ld)a * a) / ((ld)b * b) * 10. * 100) / 100;
  42. }
  43.  
  44.  
  45. const int maxn = 1e6 + 66;
  46. const int maxk = 1e6 + 66;
  47. const int maxq = 3e7;
  48.  
  49. map <int, int> g[maxn];
  50. bool used[maxk];
  51. bool cas[maxk];
  52.  
  53. int a[maxn], b[maxn], c[maxn];
  54. int castles[maxk];
  55.  
  56. int n, m, k, t, A, s;
  57.  
  58.  
  59.  
  60. int main(int argc, char * argv[])
  61. {
  62. cin.tie(0);
  63. cout.tie(0);
  64. ios_base::sync_with_stdio(false);
  65. setName("scored checker");
  66. registerTestlibCmd(argc, argv);
  67. int test_id = inf.readInt();inf.skipBlanks();
  68. n = inf.readInt(1, maxn);inf.skipBlanks();
  69. m = inf.readInt(n-1, 100000000);inf.skipBlanks();
  70. k = inf.readInt(1, n);inf.skipBlanks();
  71. t = inf.readInt();inf.skipBlanks();
  72. A = inf.readInt();inf.skipBlanks();
  73. s = inf.readInt(1, n);inf.skipBlanks();
  74. --s;
  75.  
  76. for(int i = 0; i < m; ++i)
  77. {
  78. int x, y, w;
  79. x = inf.readInt(1, n);inf.skipBlanks();
  80. y = inf.readInt(1, n);inf.skipBlanks();
  81. w = inf.readInt(0, 1000000000);inf.skipBlanks();
  82. --x;
  83. --y;
  84. g[x][y] = w;
  85. g[y][x] = w;
  86. }
  87. {
  88. //
  89. int uk = 0;
  90. for(int i = 0; i < k; ++i)
  91. {
  92. castles[uk] = inf.readInt();inf.skipBlanks();
  93. a[uk] = inf.readInt();inf.skipBlanks();
  94. b[uk] = inf.readInt();inf.skipBlanks();
  95. c[uk] = inf.readInt();inf.skipBlanks();
  96. --castles[uk];
  97. cas[castles[uk]] = 1;
  98. if (!(a[uk] <= 0 && b[uk] <= 0)) ++uk;
  99. }
  100. k = uk;
  101. }
  102. inf.skipBlanks();
  103. inf.readEof();
  104. int coinsa = ans.readInt();ans.skipBlanks();
  105. ans.readEof();
  106. int coinsp = 0;
  107. int cA = A, ct = t, v = s;
  108. int q = ouf.readInt(0, maxq);
  109. ouf.skipBlanks();
  110. for(int i = 0; i < q; ++i)
  111. {
  112. int type = ouf.readInt(1, 2);
  113. ouf.skipBlanks();
  114. if (type == 2)
  115. {
  116. if (!cas[v])
  117. quitf(_wa, "Попытка захвата поля '%d'", v + 1); else
  118. if (used[v])
  119. quitf(_wa, "Повторный захват замка '%d'", v + 1);
  120. else
  121. {
  122. if (cA < c[v])
  123. quitf(_wa, "Не хватает '%d' воинов до захвата замка '%d'", c[v] - cA, v + 1);
  124. cA += a[v];
  125. coinsp += b[v];
  126. }
  127. used[v] = 1;
  128. }
  129. else
  130. {
  131. int to = ouf.readInt(1, n);
  132. --to;
  133. if (g[v].count(to) == 0) quitf(_wa, "Нет ребра из '%d' в '%d'", v + 1, to + 1);
  134. if (ct + g[v][to] > t) quitf(_wa, "Время вышло на запросе '%d'", i + 1);
  135. ct += g[v][to];
  136. v = to;
  137. }
  138. ouf.skipBlanks();
  139. }
  140. ouf.readEof();
  141. if (coinsa < coinsp)
  142. quitf(_fail, "Авторское решение не является оптимальным");
  143. quitp(score(coinsp, coinsa), "jr='%d' ur='%d'", coinsa, coinsp);
  144. return 0;
  145. }
  146.  
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
prog.cpp:1:10: fatal error: testlib.h: No such file or directory
 #include "testlib.h"
          ^~~~~~~~~~~
compilation terminated.
stdout
Standard output is empty