Submission #1322033

#TimeUsernameProblemLanguageResultExecution timeMemory
1322033adaawfcmp (balkan11_cmp)C++20
100 / 100
1163 ms99776 KiB
#include <bits/stdc++.h> #include "cmp.h" using namespace std; void remember(int x) { int c = 0, d = 0; for (int i = 11; i >= 0; i--) { if (i % 3 == 0) bit_set((x >> i) + d); d += (1 << 12 - i); } } int f[15], g[15]; int compare(int x) { for (int i = 11; i >= 0; i--) { f[i] = (x >> i); g[i - 1] = g[i] + (1 << 12 - i); } int xx, y; if (bit_get(f[6] + g[6])) { if (bit_get(f[3] + g[3])) { xx = f[3] * 8 + g[0]; y = 0; } else { xx = f[6] * 8 + g[3]; y = 3; } } else { if (bit_get(f[9] + g[9])) { xx = f[9] * 8 + g[6]; y = 6; } else { xx = g[9]; y = 9; } } int c = 0; for (int i = y; i < y + 3; i++) { if (x & (1 << i)) { c += (1 << i - y); } } if (bit_get(xx + c)) return 0; if (c >= 4) { for (int i = c + 1; i < 8; i++) { if (bit_get(xx + i)) return -1; } return 1; } for (int i = c - 1; i >= 0; i--) { if (bit_get(xx + i)) return 1; } return -1; }

Compilation message (stderr)

cmp.cpp: In function 'int compare(int)':
cmp.cpp:15:18: warning: iteration 11 invokes undefined behavior [-Waggressive-loop-optimizations]
   15 |         g[i - 1] = g[i] + (1 << 12 - i);
      |         ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
cmp.cpp:13:24: note: within this loop
   13 |     for (int i = 11; i >= 0; i--) {
      |                      ~~^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...