Submission #545165

#TimeUTC-0UsernameProblemLanguageResultExecution timeMemory
5451652022-04-03 17:56:45rainboyQuestion (Grader is different from the original contest) (CEOI14_question_grader)C11
100 / 100
3114 ms24220 KiB
#define L 12
#define N 924 /* N = choose(L, L / 2) */
static int cnt[1 << L], bb[N], n, inited = 0;
void init() {
if (!inited) {
int b;
n = 0;
cnt[0] = 0;
for (b = 1; b < 1 << L; b++)
if ((cnt[b] = cnt[b & b - 1] + 1) == L / 2)
bb[n++] = b;
inited = 1;
}
}
int encode(int n, int x, int y) {
int l;
init();
x--, y--;
for (l = 0; l < L; l++)
if ((bb[x] & 1 << l) == 0 && (bb[y] & 1 << l) != 0)
return l + 1;
return 0;
}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Compilation message (stderr)

encoder.c: In function 'init':
encoder.c:13:28: warning: suggest parentheses around '-' in operand of '&' [-Wparentheses]
   13 |    if ((cnt[b] = cnt[b & b - 1] + 1) == L / 2)
      |                          ~~^~~

decoder.c: In function 'init':
decoder.c:13:28: warning: suggest parentheses around '-' in operand of '&' [-Wparentheses]
   13 |    if ((cnt[b] = cnt[b & b - 1] + 1) == L / 2)
      |                          ~~^~~
#Verdict Execution timeMemoryGrader output
Fetching results...