QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#288254 | #1133. Monster Game | 000226 | 0 | 24ms | 4304kb | C++17 | 2.0kb | 2023-12-22 12:08:12 | 2023-12-22 12:08:13 |
Judging History
answer
#include "monster.h"
#include <bits/stdc++.h>
#define debug(...) fprintf (stderr, __VA_ARGS__)
void msort(std :: vector<int> &p) {
if (p.size() == 1) return ;
std :: vector<int> L, R;
int mid = p.size() >> 1; -- mid;
for (int i = 0; i <= mid; i ++) L.push_back (p[i]);
for (int i = mid + 1; i < (int) p.size(); i ++) R.push_back (p[i]);
msort (L); msort (R);
p.clear();
int i = 0, j = 0;
while (i < L.size() || j < R.size()) {
if (i == L.size()) p.push_back (R[j]), j ++;
else if (j == R.size()) p.push_back (L[i]), i ++;
else if (Query (L[i], R[j])) p.push_back (R[j]);
else p.push_back (R[j]);
}
}
inline std :: vector<int> get(std :: vector<int> p) {
std :: vector<int> ans = p;
for (int i = 0; i < (int) p.size(); i ++) ans[p[i]] = i;
return ans;
}
std :: vector<int> brute_force(int n) {
std :: vector<int> p(n), cnt(n);
std :: iota (p.begin(), p.end(), 0);
for (int i = 0; i < n; i ++)
for (int j = 0; j < n; j ++) if (i != j) if (Query (p[i], p[j])) ++ cnt[p[i]];
std :: sort (p.begin(), p.end(), [&] (int x, int y) -> bool {
if (cnt[x] != cnt[y]) return cnt[x] < cnt[y];
return Query (x, y);
} );
return p;
}
std :: vector<int> Solve(int n) {
std :: vector<int> p(n);
std :: iota (p.begin(), p.end(), 0);
if (n <= 200) {
return get (brute_force(n) );
}
msort (p);
const int m = 30;
std :: vector<int> cnt(n);
for (int i = 0; i < m; i ++)
for (int j = 0; j < m; j ++) if (i != j) if (Query (p[i], p[j])) ++ cnt[p[i]];
int m1 = -1, m2 = -1;
for (int i = 0; i < m; i ++) {
if (cnt[p[i]] == 0) std :: swap (m1, m2), m2 = i;
}
if (! Query (m1, m2)) ; else std :: swap (m1, m2);
int now = m1;
std :: reverse (p.begin(), p.begin() + now + 1);
now ++;
for (int i = now; i < n; i ++) {
if (Query (p[now - 1], p[i])) {
std :: reverse (p.begin() + now, p.begin() + i + 1);
now = i + 1;
}
}
std :: reverse (p.begin() + now, p.end());
return get (p);
}
Details
Tip: Click on the bar to expand more detailed information
Subtask #1:
score: 0
Wrong Answer
Test #1:
score: 10
Accepted
time: 1ms
memory: 3820kb
input:
4 0 1 1 1 0 0 0 1 0 0 1 1 1 0
output:
Q 0 1 Q 0 2 Q 0 3 Q 1 0 Q 1 2 Q 1 3 Q 2 0 Q 2 1 Q 2 3 Q 3 0 Q 3 1 Q 3 2 Q 2 1 Q 3 0 F 4 2 1 0 3
result:
points 1.0 points 1.0
Test #2:
score: 10
Accepted
time: 1ms
memory: 4060kb
input:
4 1 0 0 0 1 1 1 0 0 1 0 1 1 0
output:
Q 0 1 Q 0 2 Q 0 3 Q 1 0 Q 1 2 Q 1 3 Q 2 0 Q 2 1 Q 2 3 Q 3 0 Q 3 1 Q 3 2 Q 2 0 Q 3 1 F 4 1 2 0 3
result:
points 1.0 points 1.0
Test #3:
score: 10
Accepted
time: 1ms
memory: 3816kb
input:
4 1 1 0 0 1 0 0 0 1 1 1 0 0 0 1
output:
Q 0 1 Q 0 2 Q 0 3 Q 1 0 Q 1 2 Q 1 3 Q 2 0 Q 2 1 Q 2 3 Q 3 0 Q 3 1 Q 3 2 Q 2 1 Q 2 1 Q 3 0 F 4 3 0 1 2
result:
points 1.0 points 1.0
Test #4:
score: 10
Accepted
time: 0ms
memory: 4024kb
input:
5 0 1 0 1 1 0 0 0 0 1 1 1 1 1 0 1 0 1 0 0 0 1
output:
Q 0 1 Q 0 2 Q 0 3 Q 0 4 Q 1 0 Q 1 2 Q 1 3 Q 1 4 Q 2 0 Q 2 1 Q 2 3 Q 2 4 Q 3 0 Q 3 1 Q 3 2 Q 3 4 Q 4 0 Q 4 1 Q 4 2 Q 4 3 Q 3 2 Q 4 1 F 5 2 1 3 4 0
result:
points 1.0 points 1.0
Test #5:
score: 10
Accepted
time: 1ms
memory: 3748kb
input:
5 1 1 0 1 0 0 1 0 0 1 0 0 1 0 1 0 0 1 1 1 1 0
output:
Q 0 1 Q 0 2 Q 0 3 Q 0 4 Q 1 0 Q 1 2 Q 1 3 Q 1 4 Q 2 0 Q 2 1 Q 2 3 Q 2 4 Q 3 0 Q 3 1 Q 3 2 Q 3 4 Q 4 0 Q 4 1 Q 4 2 Q 4 3 Q 2 1 Q 4 0 F 5 3 1 0 2 4
result:
points 1.0 points 1.0
Test #6:
score: 10
Accepted
time: 1ms
memory: 4056kb
input:
5 0 1 1 0 1 0 1 1 0 1 1 1 0 0 0 1 1 0 0 0 1 0 0
output:
Q 0 1 Q 0 2 Q 0 3 Q 0 4 Q 1 0 Q 1 2 Q 1 3 Q 1 4 Q 2 0 Q 2 1 Q 2 3 Q 2 4 Q 3 0 Q 3 1 Q 3 2 Q 3 4 Q 4 0 Q 4 1 Q 4 2 Q 4 3 Q 2 1 Q 4 3 Q 4 3 F 5 2 4 3 0 1
result:
points 1.0 points 1.0
Test #7:
score: 10
Accepted
time: 1ms
memory: 3724kb
input:
6 1 1 0 1 0 0 1 1 1 1 0 0 0 0 1 1 0 1 1 1 0 0 1 0 0 1 0 0 0 1 0 1
output:
Q 0 1 Q 0 2 Q 0 3 Q 0 4 Q 0 5 Q 1 0 Q 1 2 Q 1 3 Q 1 4 Q 1 5 Q 2 0 Q 2 1 Q 2 3 Q 2 4 Q 2 5 Q 3 0 Q 3 1 Q 3 2 Q 3 4 Q 3 5 Q 4 0 Q 4 1 Q 4 2 Q 4 3 Q 4 5 Q 5 0 Q 5 1 Q 5 2 Q 5 3 Q 5 4 Q 3 1 Q 4 2 F 6 3 4 1 5 0 2
result:
points 1.0 points 1.0
Test #8:
score: 10
Accepted
time: 1ms
memory: 3824kb
input:
6 0 0 1 0 0 1 0 1 1 1 1 1 1 0 1 0 0 0 1 1 1 0 1 0 1 1 0 0 0 0 1 1
output:
Q 0 1 Q 0 2 Q 0 3 Q 0 4 Q 0 5 Q 1 0 Q 1 2 Q 1 3 Q 1 4 Q 1 5 Q 2 0 Q 2 1 Q 2 3 Q 2 4 Q 2 5 Q 3 0 Q 3 1 Q 3 2 Q 3 4 Q 3 5 Q 4 0 Q 4 1 Q 4 2 Q 4 3 Q 4 5 Q 5 0 Q 5 1 Q 5 2 Q 5 3 Q 5 4 Q 2 1 Q 5 0 F 6 1 5 4 2 3 0
result:
points 1.0 points 1.0
Test #9:
score: 10
Accepted
time: 1ms
memory: 3724kb
input:
6 1 1 1 0 1 0 1 0 1 1 0 0 1 0 0 0 1 0 0 1 1 0 1 1 1 0 0 1 0 0 1 1
output:
Q 0 1 Q 0 2 Q 0 3 Q 0 4 Q 0 5 Q 1 0 Q 1 2 Q 1 3 Q 1 4 Q 1 5 Q 2 0 Q 2 1 Q 2 3 Q 2 4 Q 2 5 Q 3 0 Q 3 1 Q 3 2 Q 3 4 Q 3 5 Q 4 0 Q 4 1 Q 4 2 Q 4 3 Q 4 5 Q 5 0 Q 5 1 Q 5 2 Q 5 3 Q 5 4 Q 4 0 Q 5 2 F 6 5 3 1 2 4 0
result:
points 1.0 points 1.0
Test #10:
score: 10
Accepted
time: 1ms
memory: 3796kb
input:
7 0 0 1 0 0 0 1 1 1 1 0 1 1 0 1 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 1 1 0 1 1 0 1 0 1 1 1 1 0 0 0
output:
Q 0 1 Q 0 2 Q 0 3 Q 0 4 Q 0 5 Q 0 6 Q 1 0 Q 1 2 Q 1 3 Q 1 4 Q 1 5 Q 1 6 Q 2 0 Q 2 1 Q 2 3 Q 2 4 Q 2 5 Q 2 6 Q 3 0 Q 3 1 Q 3 2 Q 3 4 Q 3 5 Q 3 6 Q 4 0 Q 4 1 Q 4 2 Q 4 3 Q 4 5 Q 4 6 Q 5 0 Q 5 1 Q 5 2 Q 5 3 Q 5 4 Q 5 6 Q 6 0 Q 6 1 Q 6 2 Q 6 3 Q 6 4 Q 6 5 Q 3 0 Q 3 0 Q 6 1 F 7 0 5 3 1 2 4 6
result:
points 1.0 points 1.0
Test #11:
score: 10
Accepted
time: 1ms
memory: 3816kb
input:
7 0 1 0 1 1 1 1 0 0 0 1 1 0 1 1 1 1 1 1 1 0 1 1 1 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0
output:
Q 0 1 Q 0 2 Q 0 3 Q 0 4 Q 0 5 Q 0 6 Q 1 0 Q 1 2 Q 1 3 Q 1 4 Q 1 5 Q 1 6 Q 2 0 Q 2 1 Q 2 3 Q 2 4 Q 2 5 Q 2 6 Q 3 0 Q 3 1 Q 3 2 Q 3 4 Q 3 5 Q 3 6 Q 4 0 Q 4 1 Q 4 2 Q 4 3 Q 4 5 Q 4 6 Q 5 0 Q 5 1 Q 5 2 Q 5 3 Q 5 4 Q 5 6 Q 6 0 Q 6 1 Q 6 2 Q 6 3 Q 6 4 Q 6 5 Q 3 2 Q 6 5 Q 6 5 F 7 4 3 5 6 2 0 1
result:
points 1.0 points 1.0
Test #12:
score: 10
Accepted
time: 1ms
memory: 3724kb
input:
7 0 0 0 1 0 0 1 0 1 1 0 1 1 1 1 0 0 0 1 0 0 0 0 0 0 0 1 1 0 0 1 1 1 1 1 0 1 0 1 1 1 1 1 1
output:
Q 0 1 Q 0 2 Q 0 3 Q 0 4 Q 0 5 Q 0 6 Q 1 0 Q 1 2 Q 1 3 Q 1 4 Q 1 5 Q 1 6 Q 2 0 Q 2 1 Q 2 3 Q 2 4 Q 2 5 Q 2 6 Q 3 0 Q 3 1 Q 3 2 Q 3 4 Q 3 5 Q 3 6 Q 4 0 Q 4 1 Q 4 2 Q 4 3 Q 4 5 Q 4 6 Q 5 0 Q 5 1 Q 5 2 Q 5 3 Q 5 4 Q 5 6 Q 6 0 Q 6 1 Q 6 2 Q 6 3 Q 6 4 Q 6 5 Q 3 0 Q 6 5 F 7 1 4 3 0 2 6 5
result:
points 1.0 points 1.0
Test #13:
score: 10
Accepted
time: 0ms
memory: 3772kb
input:
8 0 0 1 0 1 0 0 1 0 0 1 1 0 1 1 1 1 1 1 0 1 0 1 0 0 1 0 1 1 0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 0 1 1 1 0 0 0 0 0 0 1 0 0
output:
Q 0 1 Q 0 2 Q 0 3 Q 0 4 Q 0 5 Q 0 6 Q 0 7 Q 1 0 Q 1 2 Q 1 3 Q 1 4 Q 1 5 Q 1 6 Q 1 7 Q 2 0 Q 2 1 Q 2 3 Q 2 4 Q 2 5 Q 2 6 Q 2 7 Q 3 0 Q 3 1 Q 3 2 Q 3 4 Q 3 5 Q 3 6 Q 3 7 Q 4 0 Q 4 1 Q 4 2 Q 4 3 Q 4 5 Q 4 6 Q 4 7 Q 5 0 Q 5 1 Q 5 2 Q 5 3 Q 5 4 Q 5 6 Q 5 7 Q 6 0 Q 6 1 Q 6 2 Q 6 3 Q 6 4 Q 6 5 Q 6 7 Q 7 0 ...
result:
points 1.0 points 1.0
Test #14:
score: 10
Accepted
time: 0ms
memory: 3724kb
input:
8 1 1 0 1 1 0 1 0 1 0 0 0 0 0 0 0 0 1 1 0 0 1 1 1 1 1 1 0 0 1 0 0 0 0 0 0 1 0 0 1 1 0 1 1 1 0 1 0 0 0 1 1 1 1 1 1 1 1
output:
Q 0 1 Q 0 2 Q 0 3 Q 0 4 Q 0 5 Q 0 6 Q 0 7 Q 1 0 Q 1 2 Q 1 3 Q 1 4 Q 1 5 Q 1 6 Q 1 7 Q 2 0 Q 2 1 Q 2 3 Q 2 4 Q 2 5 Q 2 6 Q 2 7 Q 3 0 Q 3 1 Q 3 2 Q 3 4 Q 3 5 Q 3 6 Q 3 7 Q 4 0 Q 4 1 Q 4 2 Q 4 3 Q 4 5 Q 4 6 Q 4 7 Q 5 0 Q 5 1 Q 5 2 Q 5 3 Q 5 4 Q 5 6 Q 5 7 Q 6 0 Q 6 1 Q 6 2 Q 6 3 Q 6 4 Q 6 5 Q 6 7 Q 7 0 ...
result:
points 1.0 points 1.0
Test #15:
score: 10
Accepted
time: 1ms
memory: 3724kb
input:
8 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 1 1 1 0 1 0 0 1 1 1 1 0 1 1 1 1 1 0 1 1 0 1 0 1 1 0 0 0 1 1 1 1 0 1 1 1 0
output:
Q 0 1 Q 0 2 Q 0 3 Q 0 4 Q 0 5 Q 0 6 Q 0 7 Q 1 0 Q 1 2 Q 1 3 Q 1 4 Q 1 5 Q 1 6 Q 1 7 Q 2 0 Q 2 1 Q 2 3 Q 2 4 Q 2 5 Q 2 6 Q 2 7 Q 3 0 Q 3 1 Q 3 2 Q 3 4 Q 3 5 Q 3 6 Q 3 7 Q 4 0 Q 4 1 Q 4 2 Q 4 3 Q 4 5 Q 4 6 Q 4 7 Q 5 0 Q 5 1 Q 5 2 Q 5 3 Q 5 4 Q 5 6 Q 5 7 Q 6 0 Q 6 1 Q 6 2 Q 6 3 Q 6 4 Q 6 5 Q 6 7 Q 7 0 ...
result:
points 1.0 points 1.0
Test #16:
score: 0
Wrong Answer
time: 21ms
memory: 3820kb
input:
198 1 0 0 1 1 1 1 1 1 1 1 0 1 0 0 1 1 1 0 1 0 1 0 0 1 1 1 0 0 0 1 1 1 1 1 1 0 1 0 1 0 1 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 0 0 0 1 1 1 1 0 1 1 1 1 1 0 1 1 0 1 1 0 1 1 0 1 1 1 0 1 1 1 1 1 1 0 1 0 1 1 1 1 1 0 0 1 1 1 1 0 1 1 1 0 0 0 1 1 0 1 1 0 1 1 1 0 0 1 1 0 0 1 0 1 1 1 1 1 0 1 1 1 1 1 1 1 1 ...
output:
Q 0 1 Q 0 2 Q 0 3 Q 0 4 Q 0 5 Q 0 6 Q 0 7 Q 0 8 Q 0 9 Q 0 10 Q 0 11 Q 0 12 Q 0 13 Q 0 14 Q 0 15 Q 0 16 Q 0 17 Q 0 18 Q 0 19 Q 0 20 Q 0 21 Q 0 22 Q 0 23 Q 0 24 Q 0 25 Q 0 26 Q 0 27 Q 0 28 Q 0 29 Q 0 30 Q 0 31 Q 0 32 Q 0 33 Q 0 34 Q 0 35 Q 0 36 Q 0 37 Q 0 38 Q 0 39 Q 0 40 Q 0 41 Q 0 42 Q 0 43 Q 0 44 Q...
result:
wrong answer Wrong Answer [6]
Subtask #2:
score: 0
Wrong Answer
Test #33:
score: 0
Wrong Answer
time: 14ms
memory: 4304kb
input:
995 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 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 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 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 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 1 1 1 1 1 1 1 1 ...
output:
Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 ...
result:
wrong answer Wrong Answer [6]
Subtask #3:
score: 0
Wrong Answer
Test #45:
score: 0
Wrong Answer
time: 24ms
memory: 3972kb
input:
998 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 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 0 0 0 0 0 0 ...
output:
Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 Q 1 2 ...
result:
wrong answer Wrong Answer [6]