Submission #1068694

#TimeUsernameProblemLanguageResultExecution timeMemory
1068694jamjanekChoreography (IOI23_choreography)C++17
0 / 100
1042 ms9948 KiB
#include "choreography.h" #include <bits/stdc++.h> using namespace std; vector<int> pos; vector<int> perm; vector<int>pom; int shift; int n,i; void init(int N, std::vector<int> P) { n=N; pos.resize(n); pom.resize(n); for(int i=0;i<N;i++)pos[P[i]] = i; perm = P; return; } void move_right(int k) { for(int i=0;i<n;i++) pom[(i+k)%n]=perm[i]; perm = pom; for(int i=0;i<n;i++) pos[i] = (pos[i]+k)%n; return; } void move_left(int k) { for(int i=0;i<n;i++) pom[(i-k+n)%n]=perm[i]; perm = pom; for(int i=0;i<n;i++) pos[i] = (pos[i]-k+n)%n; return; } map<vector<int>,bool>mapa; void swap_places() { for(i=0;i<n;i++) if(i%2==0)swap(perm[i], perm[i+1]); for(i=0;i<n;i++) pos[i]^=1; mapa[perm] = 1; assert(mapa.size()<2); return; } void move_around() { for(i=0;i<n;i++) pom[perm[perm[i]]] = perm[i]; perm = pom; for(i=0;i<n;i++) pos[perm[i]]=i; mapa[perm] = 1; assert(mapa.size()<2); return; } int get_position(int D){ // for(i=0;i<n;i++) // printf("%d ", perm[i]); // exit(0); return pos[D]; // return 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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...