QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#263474 | #7833. Binary String | zqs | WA | 10ms | 9076kb | C++14 | 1.3kb | 2023-11-24 21:13:59 | 2023-11-24 21:14:00 |
Judging History
answer
#include <cstdio>
#include <cstring>
#include <random>
#include <ctime>
std::mt19937 rnd(time(NULL));
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;
int a[1005];
bool vis[1005][1005];
inline bool ask(int l, int r) {
if (!vis[l][r]) {
printf("? %d %d\n", l, r);
fflush(stdout);
// if(rnd()&1)sum[l][r]=a[r]-a[l-1];
// else sum[l][r]=rnd()%(r-l+2);
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, val = 0, major = 0;
for (int k = i; k < j; ++ k) {
ask(i, k), ask(k + 1, j);
val = sum[i][k] + sum[k + 1][j];
if (val <= j - i + 1) {
++ buc[val];
if (buc[major] < buc[val]) major = val;
}
if (buc[major] > 2) break;
}
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]));
}
puts("");
// for(int i=1;i<=n;++i)printf("%d",a[i]-a[i-1]);
fflush(stdout);
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 0
Wrong Answer
time: 10ms
memory: 9076kb
input:
1 250 1 360 1 120 4 192 4 248 0 248 3 78 3 42 2 57 9 136 5 247 4 448 5 246 14 385 6 245 0 208 1 420 1 250 0 202 3 329 2 249 2 249 0 250 0 255 2 448 2 249 3 211 4 249 4 249 3 111 9 316 3 248 4 247 0 250 0 249 1 136 4 249 2 249 3 249 2 248 2 448 2 248 0 250 1 419 1 388 1 250 1 52 2 124 2 249 5 56 1 45...
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 ? 1 8 ? 9 499 ? 1 9 ? 10 499 ? 1 10 ? 11 499 ? 1 11 ? 12 499 ? 1 12 ? 13 499 ? 1 13 ? 14 499 ? 1 14 ? 15 499 ? 1 15 ? 16 499 ? 2 2 ? 3 500 ? 2 3 ? 4 500 ? 2 4 ? 5 500 ? 2 5 ? 6 500 ? 2 6 ? 7 500 ? 2 7 ?...
result:
wrong answer 3-rd bit is incorrect. Expected 1, found: 0