Submission #1016738

#TimeUsernameProblemLanguageResultExecution timeMemory
1016738AriadnaChoreography (IOI23_choreography)C++17
17 / 100
1067 ms9292 KiB
#include <bits/stdc++.h> using namespace std; int n; vector<int> dancer, pos; int total = 0; void move_right(int K) { total += K; } void move_left(int K) { total -= K; } void swap_places() { for (int i = 0; i < n && total!=0; ++i) pos[i] = (((pos[i]+total)%n)+n)%n; for (int i = 0; i < n && total!=0; ++i) dancer[pos[i]] = i; total = 0; for (int i = 0; i < n; i+=2) { swap(pos[i], pos[i+1]); swap(dancer[i], dancer[i+1]); } } void move_around() { for (int i = 0; i < n && total!=0; ++i) pos[i] = (((pos[i]+total)%n)+n)%n; for (int i = 0; i < n && total!=0; ++i) dancer[pos[i]] = i; total = 0; swap(dancer, pos); } void init(int N, vector<int> P) { n = N; pos = dancer = vector<int>(N); for (int i = 0; i < N; ++i) { dancer[i] = P[i]; pos[P[i]] = i; } } int get_position(int D) { return (((pos[D]+total)%n)+n)%n; }
#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...