Submission #1058511

#TimeUsernameProblemLanguageResultExecution timeMemory
1058511rainboyCOVID tests (CEOI24_covid)C11
0 / 100
5 ms344 KiB
#include <stdio.h> #include <string.h> #define N 1000 int min(int a, int b) { return a < b ? a : b; } unsigned int Z = 12345; int rand_() { return (Z *= 3) >> 1; } int n, m; double p; int query(int *ii, int k) { static char cc[N + 1], s[2]; int h; memset(cc, '0', n * sizeof *cc); for (h = 0; h < k; h++) cc[ii[h]] = '1'; printf("Q %s\n", cc), fflush(stdout); scanf("%s", s); return s[0] == 'P'; } void shuffle(int *ii, int n) { int h, h_, tmp; for (h = 0; h < n; h++) { h_ = rand_() % (h + 1); tmp = ii[h], ii[h] = ii[h_], ii[h_] = tmp; } } int main() { int t; scanf("%d%lf%d", &n, &p, &t), m = 1 / p; while (t--) { static char cc[N + 1]; static int ii[N]; int n_, n__, h, i, l, r, lower, upper; memset(cc, '0', n * sizeof *cc), cc[n] = 0; if (t == 1) { for (i = 0; i < n; i++) { ii[0] = i; if (query(ii, 1)) cc[i] = '1'; } } else { n_ = 0; for (i = 0; i < n; i++) ii[n_++] = i; while (n_ > 0) { shuffle(ii, n_); n__ = 0; for (l = 0; l + m <= n_; l += m) { r = min(l + m, n_); if (query(ii + l, r - l)) { lower = l, upper = r; while (upper - lower > 1) { h = (lower + upper) / 2; if (query(ii + l, h - l)) upper = h; else lower = h; } cc[ii[lower]] = '1'; for (h = lower + 1; h < r; h++) ii[n__++] = ii[h]; } } n_ = n__; } } printf("A %s\n", cc), fflush(stdout); scanf("%*s"); } return 0; }

Compilation message (stderr)

Main.c: In function 'query':
Main.c:24:2: warning: ignoring return value of 'scanf' declared with attribute 'warn_unused_result' [-Wunused-result]
   24 |  scanf("%s", s);
      |  ^~~~~~~~~~~~~~
Main.c: In function 'main':
Main.c:40:2: warning: ignoring return value of 'scanf' declared with attribute 'warn_unused_result' [-Wunused-result]
   40 |  scanf("%d%lf%d", &n, &p, &t), m = 1 / p;
      |  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
Main.c:80:3: warning: ignoring return value of 'scanf' declared with attribute 'warn_unused_result' [-Wunused-result]
   80 |   scanf("%*s");
      |   ^~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...