이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
int main() {
int N, K, Q;
std::cin >> N >> K >> Q;
int data[N];
for (int i = 0; i < N; ++i) {
std::cin >> data[i];
data[i]--;
}
int nums[K];
for (int i = 0; i < K; ++i) {
nums[i] = i;
}
for (int _ = 0; _ < Q; ++_) {
int index;
std::cin >> index;
std::swap(nums[index], nums[index - 1]);
#ifdef LOCAL
for (int i = 0; i < K; ++i) {
std::cout << nums[i] << " ";
}
std::cout << std::endl;
#endif
int pos[K];
for (int i = 0; i < K; ++i) {
pos[nums[i]] = i;
}
int sort[N];
for (int i = 0; i < N; ++i) {
sort[i] = pos[data[i]];
}
int swaps = 0;
while (true) {
for (int i = 0; i < N - 1; ++i) {
if (sort[i + 1] < sort[i]) {
goto unsorted;
}
}
break;
unsorted:
for (int i = 0; i < N - 1; ++i) {
if (sort[i + 1] < sort[i]) {
std::swap(sort[i + 1], sort[i]);
swaps++;
}
}
}
std::cout << swaps << std::endl;
}
}
# | 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... |