QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#263320 | #7833. Binary String | zqs | WA | 0ms | 8144kb | C++14 | 1.1kb | 2023-11-24 18:51:27 | 2023-11-24 18:51:27 |
Judging History
answer
#include <cstdio>
#include <cstring>
int adjust(int x) {
if (x < 0) x = 0;
else x = 1;
return x;
}
int sum[1005][1005], real[1005][1005], buc[1005], n = 1000, m = 500;
bool vis[1005][1005];
inline bool ask(int l, int r) {
if (!vis[l][r]) {
printf("? %d %d\n", l, r);
fflush(stdout);
scanf("%d", &sum[l][r]);
vis[l][r] = true;
}
return sum[l][r];
}
int main() {
for (int len = m - 1; len <= m; ++ len) {
for (int i = 1; i + len - 1 <= n; ++ i) {
memset(buc, 0, sizeof buc);
int j = i + len - 1;
for (int k = i; k < j && k <= i + 6; ++ k) {
ask(i, k), ask(k + 1, j);
if (sum[i][k] + sum[k + 1][j] <= j - i + 1) ++ buc[sum[i][k] + sum[k + 1][j]];
}
int major = 0;
for (int k = 1; k <= j - i + 1; ++ k) if (buc[k] > buc[major]) major = k;
real[i][j] = major;
}
}
printf("! ");
for (int i = 1; i <= n; ++ i) {
if (i <= n - m + 1) printf("%d", adjust(real[i][i + m - 1] - real[i][i + m - 2]));
else printf("%d", adjust(real[i - m + 1][i] - real[i - m + 2][i]));
}
fflush(stdout);
return 0;
}
详细
Test #1:
score: 0
Wrong Answer
time: 0ms
memory: 8144kb
input:
1 250 1 360 1 120 4 192 4 248 0 248 3 78 0 472 0 207 0 305 2 249 4 249 2 237 3 249 1 250 2 420 2 249 0 202 3 329 2 249 2 249 1 250 1 237 3 249 0 249 1 285 5 45 2 272 1 250 0 183 0 250 1 250 1 250 2 74 2 249 1 359 0 134 0 8 0 251 1 250 1 208 1 250 1 182 1 252 0 252 2 251 4 251 1 447 0 48 1 164 1 252 ...
output:
? 1 1 ? 2 499 ? 1 2 ? 3 499 ? 1 3 ? 4 499 ? 1 4 ? 5 499 ? 1 5 ? 6 499 ? 1 6 ? 7 499 ? 1 7 ? 8 499 ? 2 2 ? 3 500 ? 2 3 ? 4 500 ? 2 4 ? 5 500 ? 2 5 ? 6 500 ? 2 6 ? 7 500 ? 2 7 ? 8 500 ? 2 8 ? 9 500 ? 3 3 ? 4 501 ? 3 4 ? 5 501 ? 3 5 ? 6 501 ? 3 6 ? 7 501 ? 3 7 ? 8 501 ? 3 8 ? 9 501 ? 3 9 ? 10 501 ? 4 4...
result:
wrong output format Unexpected end of file - token expected