# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
962551 | 2024-04-13T19:25:08 Z | tutis | Closing Time (IOI23_closing) | C++17 | 1000 ms | 803580 KB |
#include "closing.h" #include <bits/stdc++.h> using namespace std; typedef long long ll; int max_score(int N, int X, int Y, long long K, vector<int> U, vector<int> V, vector<int> W) { vector <pair<int, int>> adj[N]; vector <vector<int>> adj1[2]; adj1[0] = vector<vector<int>>(N); adj1[1] = vector<vector<int>>(N); for (int i = 0; i < N - 1; i++) { adj[U[i]].push_back({V[i], W[i]}); adj[V[i]].push_back({U[i], W[i]}); } vector <ll> D[2]; D[0] = vector<ll>(N); D[1] = vector<ll>(N); int XY[2] = {X, Y}; vector<int> x2y; for (int t: {0, 1}) { D[t][XY[t]] = 0; vector<int> P; function<void(int, int)> dfs = [&](int i, int p) -> void { if (p != -1) { adj1[t][p].push_back(i); } P.push_back(i); if (t == 0 && i == Y) { x2y = P; } for (auto j: adj[i]) { if (j.first == p) { continue; } D[t][j.first] = D[t][i] + j.second; dfs(j.first, i); } P.pop_back(); }; dfs(XY[t], -1); } int ret = 0; vector <ll> cost[2]; for (int t: {0, 1}) { ll sum = 0; priority_queue <pair<int, int>> Q; Q.push({0, XY[t]}); while (!Q.empty()) { int i = Q.top().second; sum += D[t][i]; cost[t].push_back(sum); if (sum > K) { break; } for (auto j: adj1[t][i]) { Q.push({-D[t][j], j}); } } } for (int i = 0; i < cost[0].size(); i++) { for (int j = 0; j < cost[1].size(); j++) { if (cost[0][i] + cost[1][j] <= K) { ret = max(ret, i + 1 + j + 1); } } } int m = 0; while (m + 1 < x2y.size() && D[0][x2y[m + 1]] <= D[1][x2y[m + 1]]) { m++; } ll s0 = 0; ll s1 = 0; for (int i = 0; i <= m; i++) { s0 += D[0][x2y[i]]; s0 = min(s0, K + 1); } for (int j = x2y.size() - 1; j > m; j--) { s1 += D[1][x2y[j]]; s1 = min(s1, K + 1); } if (s0 + s1 > K) { return ret; } return ret; }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Execution timed out | 1071 ms | 657140 KB | Time limit exceeded |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Execution timed out | 1077 ms | 737140 KB | Time limit exceeded |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Execution timed out | 1039 ms | 803580 KB | Time limit exceeded |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Execution timed out | 1039 ms | 803580 KB | Time limit exceeded |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Execution timed out | 1039 ms | 803580 KB | Time limit exceeded |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Execution timed out | 1071 ms | 657140 KB | Time limit exceeded |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Execution timed out | 1071 ms | 657140 KB | Time limit exceeded |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Execution timed out | 1071 ms | 657140 KB | Time limit exceeded |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Execution timed out | 1071 ms | 657140 KB | Time limit exceeded |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Execution timed out | 1071 ms | 657140 KB | Time limit exceeded |
2 | Halted | 0 ms | 0 KB | - |