# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
848885 | 2023-09-13T16:24:50 Z | d4xn | Longest Trip (IOI23_longesttrip) | C++17 | 1000 ms | 728 KB |
#include "longesttrip.h" #include <bits/stdc++.h> using namespace std; #define all(x) x.begin(), x.end() const int N = 256, T = 5e3; mt19937 rng(time(nullptr) + (uint64_t) new char); int cnt; vector<int> adj[N], ans, curr; bitset<N> vis, con[N]; void dfs(int u) { vis[u] = 1; curr.push_back(u); cnt++; if (cnt > T) { if (curr.size() > ans.size()) ans = curr; return; } //shuffle(all(adj[u]), rng); for (int& v : adj[u]) { if (vis[v]) continue; dfs(v); if (cnt > T) return; } if (curr.size() > ans.size()) ans = curr; vis[u] = 0; curr.pop_back(); } vector<int> longest_trip(int N, int D) { if (D == 3) { ans.resize(N); for (int i = 0; i < N; i++) ans[i] = i; return ans; } else { for (int i = 0; i < N; i++) { for (int j = i+1; j < N; j++) { if (are_connected({i}, {j})) { adj[i].push_back(j); adj[j].push_back(i); con[i][j] = con[j][i] = 1; } } } for (int i = 0; i < 2; i++) { cnt = 0; vis.reset(); curr.clear(); for (int j = 0; j < N; j++) { shuffle(all(adj[j]), rng); } dfs(rng() % N); } curr.clear(); curr.resize(N); for (int i = 0; i < N; i++) { curr[i] = i; } for (int i = 0; i < T; i++) { shuffle(all(curr), rng); int r = 0; for (int j = 0; j+1 < N; j++) { if (con[curr[j]][curr[j+1]]) r++; else break; } if (r+1 > ans.size()) { ans.clear(); ans.resize(r+1); for (int j = 0; j <= r; j++) { ans[j] = curr[j]; } } } return ans; } }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Incorrect | 1 ms | 344 KB | Incorrect |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 408 KB | Output is correct |
2 | Correct | 1 ms | 344 KB | Output is correct |
3 | Correct | 0 ms | 344 KB | Output is correct |
4 | Correct | 0 ms | 344 KB | Output is correct |
5 | Correct | 1 ms | 344 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Execution timed out | 1026 ms | 600 KB | Time limit exceeded |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 995 ms | 692 KB | Output is correct |
2 | Incorrect | 471 ms | 488 KB | Incorrect |
3 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 993 ms | 436 KB | Output is correct |
2 | Incorrect | 470 ms | 728 KB | Incorrect |
3 | Halted | 0 ms | 0 KB | - |