QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#297857 | #4831. Eager Sorting | fxhd | 0 | 1ms | 3568kb | C++17 | 1.9kb | 2024-01-05 12:05:45 | 2024-01-05 12:05:45 |
answer
#include <bits/stdc++.h>
using namespace std;
#ifdef DEBUG
#include "debug.hpp"
#else
#define dbg(...) 0
#endif
int make_query(int i, int j) {
cout << (i + 1) << ' ' << (j + 1) << endl;
int r;
cin >> r;
return r;
}
vector<int> inds;
int is_smaller(int i, int j) {
int r = make_query(inds[i], inds[j]);
if (r < 0) return -1;
if (r == 0) return (inds[i] < inds[j]);
assert(r == 1);
swap(inds[i], inds[j]);
return (inds[i] < inds[j]);
}
void make_swap(int i, int j) {
swap(inds[i], inds[j]);
};
bool solve(int n) {
inds.resize(n);
iota(inds.begin(), inds.end(), 0);
vector<int> merged(n), inv_merged(n);
auto dnc = [&](auto&& self, int l, int r) -> bool {
if ((r - l) == 1) return true;
int mid = (l + r) / 2;
if (!self(self, l, mid)) return false;
if (!self(self, mid, r)) return false;
int i1 = l, i2 = mid, p = l;
while ((i1 < mid) && (i2 < r)) {
if (is_smaller(i1, i2)) {
merged[p++] = i1++;
}
else {
merged[p++] = i2++;
}
}
while (i1 < mid) merged[p++] = i1++;
while (i2 < r) merged[p++] = i2++;
assert(p == r);
for (int i = l; i < r; ++i) inv_merged[merged[i]] = i;
for (int i = l; i < r; ++i) {
if (int x = merged[i]; x != i) {
make_swap(i, x);
swap(merged[inv_merged[i]], merged[inv_merged[x]]);
swap(inv_merged[i], inv_merged[x]);
}
}
return true;
};
if (!dnc(dnc, 0, n)) return false;
for (int i = 0; i < n; ++i) {
if (inds[i] != i) {
int j = 0;
while (inds[j] != i) j++;
if (make_query(inds[j], inds[i]) < 0) return false;
swap(inds[j], inds[i]);
}
}
cout << "-1 -1" << endl;
return true;
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int n;
cin >> n;
solve(n);
}
詳細信息
Test #1:
score: 100
Accepted
time: 1ms
memory: 3556kb
Interactor to First Run
5 0 1 0 1 0 1 0 1 -1
First Run to Interactor
1 2 4 5 3 4 1 3 3 4 2 4 4 5 2 3 -1 -1
Interactor to Second Run
5 0 0 0 0 0
Second Run to Interactor
1 2 4 5 3 4 1 3 2 3 -1 -1
Manager to Checker
OK good job!
result:
ok OK
Test #2:
score: 100
Accepted
time: 1ms
memory: 3508kb
Interactor to First Run
1
First Run to Interactor
-1 -1
Interactor to Second Run
1
Second Run to Interactor
-1 -1
Manager to Checker
OK good job!
result:
ok OK
Test #3:
score: 100
Accepted
time: 1ms
memory: 3500kb
Interactor to First Run
2 0
First Run to Interactor
1 2 -1 -1
Interactor to Second Run
2 0
Second Run to Interactor
1 2 -1 -1
Manager to Checker
OK good job!
result:
ok OK
Test #4:
score: 100
Accepted
time: 1ms
memory: 3508kb
Interactor to First Run
2 1
First Run to Interactor
1 2 -1 -1
Interactor to Second Run
2 0 -1
Second Run to Interactor
1 2 -1 -1
Manager to Checker
OK good job!
result:
ok OK
Test #5:
score: 100
Accepted
time: 1ms
memory: 3456kb
Interactor to First Run
9 1 0 0 0 1 0 1 1 0 0 1 0 0 0 1 1 1 0 1 1 1
First Run to Interactor
1 2 3 4 1 3 2 3 5 6 8 9 7 8 8 9 5 7 6 7 1 5 5 6 2 6 3 6 4 6 6 7 7 8 8 9 2 5 3 5 4 5 -1 -1
Interactor to Second Run
9 0 0 0 0 0 0 0 0 0 0 0 0 0
Second Run to Interactor
1 2 3 4 1 3 2 3 5 6 8 9 7 8 5 7 6 7 1 5 2 5 3 5 4 5 -1 -1
Manager to Checker
OK good job!
result:
ok OK
Test #6:
score: 100
Accepted
time: 0ms
memory: 3488kb
Interactor to First Run
9 0 1 1 1 0 1 1 0 0 1 0 0 0 1 0 1 1 1 0 1 1 1
First Run to Interactor
1 2 3 4 1 3 3 4 5 6 8 9 7 8 8 9 5 7 6 7 7 8 1 5 3 5 4 5 5 6 2 6 6 7 7 8 8 9 2 3 3 4 4 5 -1 -1
Interactor to Second Run
9 0 0 0 0 0 0 0 0 0 0 0 0 0
Second Run to Interactor
1 2 3 4 1 3 2 3 5 6 8 9 7 8 5 7 6 7 1 5 2 5 3 5 4 5 -1 -1
Manager to Checker
OK good job!
result:
ok OK
Test #7:
score: 100
Accepted
time: 1ms
memory: 3568kb
Interactor to First Run
6 0 1 0 1 0 1 1 0 1 1 1 1
First Run to Interactor
2 3 1 2 2 3 5 6 4 5 1 4 4 5 5 6 2 6 2 4 3 5 5 6 -1 -1
Interactor to Second Run
6 0 0 0 0 0 0 0
Second Run to Interactor
2 3 1 2 5 6 4 5 1 4 2 4 3 4 -1 -1
Manager to Checker
OK good job!
result:
ok OK
Test #8:
score: 100
Accepted
time: 1ms
memory: 3456kb
Interactor to First Run
20 1 0 1 1 1 1 0 1 1 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 1 0 1 1 0 0 1 0 1 1 1 0 0 1 1 0 1 0 0 0 0 0 1 1 0 1 0 0 0 0 1 1 1 1 0 1 0 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
First Run to Interactor
1 2 4 5 3 4 4 5 1 3 3 4 4 5 2 5 6 7 9 10 8 9 6 8 8 9 7 9 9 10 1 6 3 6 4 6 6 8 8 7 2 8 8 9 5 9 11 12 14 15 13 14 14 15 11 13 13 14 14 15 12 15 16 17 19 20 18 19 19 20 16 18 18 19 17 19 11 16 16 18 18 17 18 19 19 20 13 20 14 20 12 20 15 20 1 11 11 16 16 17 3 17 17 18 4 18 6 18 7 18 2 18 18 19 19 13 8 ...
Interactor to Second Run
20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Second Run to Interactor
1 2 4 5 3 4 1 3 2 3 6 7 9 10 8 9 6 8 7 8 1 6 2 6 3 6 4 6 5 6 11 12 14 15 13 14 11 13 12 13 16 17 19 20 18 19 16 18 17 18 11 16 12 16 13 16 14 16 15 16 1 11 2 11 3 11 4 11 5 11 6 11 7 11 8 11 9 11 10 11 -1 -1
Manager to Checker
OK good job!
result:
ok OK
Test #9:
score: 100
Accepted
time: 1ms
memory: 3500kb
Interactor to First Run
15 0 0 1 1 0 1 1 0 1 0 0 1 0 0 0 1 1 1 1 1 1 1 1 0 1 0 0 0 1 1 0 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1
First Run to Interactor
2 3 1 2 4 5 6 7 4 6 5 6 6 7 1 4 2 4 4 5 3 5 8 9 10 11 8 10 9 10 12 13 14 15 12 14 14 15 8 12 12 14 14 15 15 13 9 15 10 15 1 8 2 8 4 8 3 8 8 12 12 14 5 14 14 13 6 14 14 9 7 14 14 10 14 15 15 11 3 4 5 8 6 12 7 8 8 13 9 12 10 12 11 13 13 14 -1 -1
Interactor to Second Run
15 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Second Run to Interactor
2 3 1 2 4 5 6 7 4 6 5 6 1 4 2 4 3 4 8 9 10 11 8 10 9 10 12 13 14 15 12 14 13 14 8 12 9 12 10 12 11 12 1 8 2 8 3 8 4 8 5 8 6 8 7 8 -1 -1
Manager to Checker
OK good job!
result:
ok OK
Test #10:
score: 100
Accepted
time: 1ms
memory: 3528kb
Interactor to First Run
20 0 1 0 1 1 1 1 1 1 0 1 1 1 1 0 1 1 1 1 1 1 0 1 0 0 1 0 1 0 1 1 1 1 1 0 0 1 1 0 0 0 0 0 0 1 1 1 0 1 0 0 1 1 1 0 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
First Run to Interactor
1 2 4 5 3 4 1 3 3 4 4 5 6 7 9 10 8 9 9 10 6 8 8 9 9 10 1 6 6 8 3 8 8 9 9 10 10 7 4 10 11 12 14 15 13 14 14 15 11 13 12 13 13 14 16 17 19 20 18 19 19 20 16 18 18 19 19 20 11 16 12 16 13 16 16 18 18 19 14 19 15 19 1 11 6 11 3 11 8 11 11 12 12 13 13 16 9 16 16 18 7 18 4 18 18 14 10 18 18 15 18 19 19 20...
Interactor to Second Run
20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Second Run to Interactor
1 2 4 5 3 4 1 3 2 3 6 7 9 10 8 9 6 8 7 8 1 6 2 6 3 6 4 6 5 6 11 12 14 15 13 14 11 13 12 13 16 17 19 20 18 19 16 18 17 18 11 16 12 16 13 16 14 16 15 16 1 11 2 11 3 11 4 11 5 11 6 11 7 11 8 11 9 11 10 11 -1 -1
Manager to Checker
OK good job!
result:
ok OK
Test #11:
score: 100
Accepted
time: 1ms
memory: 3456kb
Interactor to First Run
27 0 1 1 1 1 1 1 0 1 0 0 0 1 0 1 1 0 1 0 1 1 1 0 0 0 1 0 1 0 1 1 1 0 0 1 0 0 0 1 1 0 0 0 1 1 1 0 1 1 0 0 0 1 1 1 0 1 0 1 1 1 1 1 1 1 0 1 1 -1
First Run to Interactor
2 3 1 2 2 3 5 6 4 5 5 6 1 4 4 5 2 5 5 6 3 6 8 9 7 8 8 9 10 11 12 13 10 12 11 12 12 13 7 10 10 11 11 12 12 13 8 13 9 13 1 7 7 10 4 10 10 11 2 11 11 12 12 8 5 12 3 12 6 12 12 9 12 13 15 16 14 15 15 16 17 18 19 20 17 19 18 19 19 20 14 17 17 18 15 18 18 19 19 20 16 20 22 23 21 22 22 23 24 25 26 27 24 26...
Interactor to Second Run
27 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 1 0 1 1 1 0 0 0 0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 1 1 0 1 1 0 1 0 1 1 1 1 0 0 1 0 0 1 1 0 0 1 0 1 1 1 0 1 0 0 1 0 0 0 1 0 0 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
Second Run to Interactor
2 3 1 2 5 6 4 5 1 4 2 4 4 5 3 5 5 6 8 9 7 8 10 11 12 13 10 12 11 12 7 10 8 10 10 11 11 12 9 12 1 7 2 7 7 8 4 8 8 10 3 10 10 11 11 9 5 11 6 11 15 16 14 15 17 18 19 20 17 19 18 19 14 17 15 17 17 18 16 18 18 19 19 20 22 23 21 22 24 25 26 27 24 26 25 26 21 24 22 24 24 25 25 26 23 26 26 27 14 21 15 21 21...
Manager to Checker
OK good job!
result:
ok OK
Test #12:
score: 100
Accepted
time: 1ms
memory: 3480kb
Interactor to First Run
30 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 0 1 0 0 1 0 0 1 0 0 0 1 0 1 0 0 1 0 0 1 1 0 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 0 0 1 1 1 0 1 1 0 0 0 0 1 1 0 1 1 0 0 0 0 1 0 1 1 0 1 1 0 1 1 1 1 1 1 1 0 0 1 1 0 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
First Run to Interactor
2 3 1 2 4 5 6 7 4 6 5 6 1 4 4 5 2 5 5 6 3 6 6 7 8 9 10 11 8 10 10 11 9 11 12 13 14 15 12 14 13 14 8 12 12 13 10 13 9 13 13 14 11 14 1 8 4 8 8 12 2 12 12 10 12 9 12 13 13 11 13 14 5 14 14 15 17 18 16 17 17 18 19 20 21 22 19 21 20 21 21 22 16 19 19 20 17 20 20 21 21 22 23 24 25 26 23 25 25 26 27 28 29...
Interactor to Second Run
30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Second Run to Interactor
2 3 1 2 4 5 6 7 4 6 5 6 1 4 2 4 3 4 8 9 10 11 8 10 9 10 12 13 14 15 12 14 13 14 8 12 9 12 10 12 11 12 1 8 2 8 3 8 4 8 5 8 6 8 7 8 17 18 16 17 19 20 21 22 19 21 20 21 16 19 17 19 18 19 23 24 25 26 23 25 24 25 27 28 29 30 27 29 28 29 23 27 24 27 25 27 26 27 16 23 17 23 18 23 19 23 20 23 21 23 22 23 1 ...
Manager to Checker
OK good job!
result:
ok OK
Test #13:
score: 0
Instance #1 Runtime Error
Interactor to First Run
39 0 0 0 1 1 1 0 1 1 1 0 1 0 1 0 1 0 0 0 1 1 1 1 1 1 1 0 1 1 0 1 1 0 0 0 0 0 1 1 0 1 1 1 0 0 1 1 1 0 1 1 0 1 0 1 1 1 0 0 1 0 1 0 0 0 1 1 0 1 0 0 1 1 1 1 0 0 0 1 0 0 0 0 1 1 0 0 0 1 1 0 1 1 1 0 1 0 1 1 1 1 1 0 1 1 0 0 0 0 0 1 1 1 1 0 1 0 0 1 1 0 1 1 1 1 1 0 0 0 1 0 0 1 1 0 1 1 0 1 0 0 0 1 0 0 1 0 1 1...
First Run to Interactor
1 2 3 4 1 3 2 3 3 4 5 6 8 9 7 8 8 9 5 7 7 8 6 8 8 9 1 5 5 7 2 7 7 6 7 8 3 8 4 8 8 9 10 11 13 14 12 13 13 14 10 12 12 13 11 13 13 14 15 16 18 19 17 18 18 19 15 17 16 17 10 15 12 15 11 15 15 16 16 17 13 17 17 18 18 19 1 10 5 10 2 10 10 12 12 11 6 12 7 12 12 15 15 16 3 16 16 13 16 17 17 18 18 19 19 14 ...
Interactor to Second Run
39 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1
Second Run to Interactor
1 2 3 4 1 3 2 3 5 6 8 9 7 8 5 7 6 7 1 5 2 5 3 5 4 5 10 11 13 14 12 13 10 12 11 12 15 16 18 19 17 18 15 17 16 17 10 15 11 15 12 15 13 15 14 15 1 10 2 10
Manager to Checker
OK good job!