Submission #843756

#TimeUsernameProblemLanguageResultExecution timeMemory
843756mickey080929Memory 2 (JOI16_memory2)C++14
60 / 100
1 ms348 KiB
#include "Memory2_lib.h" #include <bits/stdc++.h> using namespace std; int ret[110]; int cnt[110]; int chk[110]; vector<int> ans[110]; void Solve(int T, int N) { mt19937 gen(998244); uniform_int_distribution<int> dis(0, 1'000'000'000); int r = 2 * N; int ppv = -1, pre = -1; while (r>0) { if (r == 2) { int x = -1, y = -1; for (int i=0; i<2*N; i++) { if (!chk[i]) { if (x == -1) x = i; else y = i; } } ans[Flip(x, y)] = {x, y}; break; } int idx = dis(gen) % (r - (ppv != -1)); int pv; for (int i=0; i<2*N; i++) { if (!chk[i] && i != ppv) { if (idx == 0) { pv = i; break; } idx --; } } for (int i=0; i<N; i++) cnt[i] = 0; if (ppv != -1) { ret[ppv] = pre; cnt[pre] ++; } for (int i=0; i<2*N; i++) { if (pv == i || ppv == i || chk[i]) continue; ret[i] = Flip(pv, i); cnt[ret[i]] ++; } int cur = -1; for (int i=0; i<N; i++) { if (cnt[i] & 1) { cur = i; break; } } if (cur == pre) { ans[pre] = {ppv, pv}; chk[ppv] = 1; chk[pv] = 1; r -= 2; ppv = -1; pre = -1; continue; } for (int i=0; i<2*N; i++) { if (pv == i || chk[i]) continue; if (ret[i] != cur) { ans[ret[i]].push_back(i); chk[i] = 1; r --; } } ppv = pv; pre = cur; } for (int i=0; i<N; i++) { //printf("%d %d\n", ans[i][0], ans[i][1]); Answer(ans[i][0], ans[i][1], i); } return; }

Compilation message (stderr)

memory2.cpp: In function 'void Solve(int, int)':
memory2.cpp:46:26: warning: 'pv' may be used uninitialized in this function [-Wmaybe-uninitialized]
   46 |             ret[i] = Flip(pv, i);
      |                      ~~~~^~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...