Submission #939803

#TimeUsernameProblemLanguageResultExecution timeMemory
939803AdamGSLockpicking (IOI23_lockpicking)C++17
100 / 100
6 ms3192 KiB
#include "lockpicking.h" #include<bits/stdc++.h> using namespace std; #define rep(a, b) for(int a = 0; a < (b); ++a) #define st first #define nd second #define pb push_back #define all(a) a.begin(), a.end() void construct_card(int N, vector<int>A, vector<vector<int>>S) { vector<int>B=A; vector<vector<int>>T=S; int k=1; vector<int>odw(N); for(int i=1; i<N; ++i) { int p=i, s=0; int ile=0; while(p!=s%N && ile<N) { ++ile; if(A[p]!=B[s] && !odw[s]) { rep(j, N) { B.pb(A[j]); T.pb({S[j][0]+k*N, S[j][1]+k*N}); odw.pb(0); } T[s][A[p]]=S[p][B[s]]%N+k*N; ++k; odw[s]=1; } int x=A[p], y=B[s]; p=S[p][y]; s=T[s][x]; if(x!=y) ile=0; } } define_states(N*k, 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...