QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#288049 | #6303. Inversion | Jacka1# | WA | 1ms | 3380kb | C++20 | 1.3kb | 2023-12-21 17:21:26 | 2023-12-21 17:21:27 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
const int N = 2005;
int n, ans[N];
void solve(int l, int r) {
if(l == r) return ;
int mid = l + r >> 1, x = 0, y = 0, t;
cout << "? " << l << " " << mid << endl;
cin >> x; cout << endl;
cout << "? " << mid + 1 << " " << r << endl;
cin >> y; cout << endl;
for(int i = mid; i >= l; i --) {
cout << "? " << i << " " << r << endl;
cin >> t; cout << endl;
ans[i] += (t - y);
y = t;
}
y = 0;
for(int i = mid - 1; i >= l; i --) {
cout << "? " << i << " " << mid << endl;
cin >> t; cout << endl;
ans[i] -= (t - y);
y = t;
}
for(int i = mid + 1; i <= r; i ++) {
cout << "? " << l << " " << i << endl;
cin >> t; cout << endl;
ans[i] += i - l - (t - x);
x = t;
}
x = 0;
for(int i = mid + 2; i <= r; i ++) {
cout << "? " << mid + 1 << " " << i << endl;
cin >> t; cout << endl;
ans[i] -= i - (mid + 1) - (t - x);
x = t;
}
solve(l, mid), solve(mid + 1, r);
}
int main() {
cin >> n;
cout << endl;
solve(1, n);
cout << "! ";
for(int i = 1; i <= n; i ++) cout << ans[i] + 1 << " ";
cout << endl;
return 0;
}
详细
Test #1:
score: 0
Wrong Answer
time: 1ms
memory: 3380kb
input:
3 0 0 1 0 0 0 0 0 0 0
output:
? 1 2 ? 3 3 ? 2 3 ? 1 3 ? 1 2 ? 1 3 ? 1 1 ? 2 2 ? 1 2 ? 1 2 ! 0 3 3
result:
wrong output format Unexpected end of file - token expected