Submission #1155771

#TimeUsernameProblemLanguageResultExecution timeMemory
1155771onbertLockpicking (IOI23_lockpicking)C++20
100 / 100
18 ms4316 KiB
#include <bits/stdc++.h> using namespace std; void construct_card(int N, vector<int> A, vector<vector<int>> S); void define_states(int M, vector<int> B, vector<vector<int>> T, int j0); void construct_card(int n, vector<int> A, vector<vector<int>> S) { int m = n * n; vector<int> B(m); vector<vector<int>> T(m, vector<int>(2, -1)); for (int i=0;i<m;i++) B[i] = A[i%n], T[i][B[i]] = S[i%n][B[i]] + i/n*n; for (int i=1;i<n;i++) { int u1 = i, u2 = 0; for (int j=0;j<n*n;j++) { int v1 = S[u1][B[u2]], v2 = T[u2][A[u1]]; if (v2 == -1) { T[u2][A[u1]] = v1 + i * n; break; } u1 = v1, u2 = v2; } } for (int i=0;i<m;i++) for (int j=0;j<=1;j++) T[i][j] = max((int)0, T[i][j]); define_states(m, B, T, 0); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...