This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#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 time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |