Submission #1083794

#TimeUsernameProblemLanguageResultExecution timeMemory
1083794alexdumitruICC (CEOI16_icc)C++17
61 / 100
125 ms640 KiB
#include <bits/stdc++.h> #include "icc.h" using namespace std; const int NMAX = 100; mt19937 mt(time(0)); int A[NMAX], B[NMAX]; int cnt1, cnt2; int cmp[NMAX + 1]; vector<vector<int>> comp; void run(int n) { comp.resize(n); for (int i = 0; i < n; i++) comp[i].push_back(i + 1); int nrc = n; for (int step = 1; step < n; step++) { vector<int> perm(nrc); iota(perm.begin(), perm.end(), 0); bool diffHalfs = false; while (!diffHalfs) { shuffle(perm.begin(), perm.end(), mt); cnt1 = cnt2 = 0; for (int i = 0; i < nrc / 2; i++) { for (int node : comp[perm[i]]) { cmp[node] = perm[i]; A[cnt1++] = node; } } for (int i = nrc / 2; i < nrc; i++) { for (int node : comp[perm[i]]) { cmp[node] = perm[i]; B[cnt2++] = node; } } diffHalfs = query(cnt1, cnt2, A, B); } int pos1, pos2; int st = 0; int dr = cnt1 - 1; while (st <= dr) { int mij = (st + dr) / 2; if (query(mij + 1, cnt2, A, B)) { pos1 = mij; dr = mij - 1; } else { st = mij + 1; } } st = 0; dr = cnt2 - 1; while (st <= dr) { int mij = (st + dr) / 2; if (query(cnt1, mij + 1, A, B)) { pos2 = mij; dr = mij - 1; } else { st = mij + 1; } } setRoad(A[pos1], B[pos2]); pos1 = cmp[A[pos1]]; pos2 = cmp[B[pos2]]; if (pos1 > pos2) swap(pos1, pos2); for (int node : comp[pos2]) comp[pos1].push_back(node); for (int i = pos2; i + 1 < nrc; i++) comp[i] = comp[i + 1]; nrc--; } }

Compilation message (stderr)

icc.cpp: In function 'void run(int)':
icc.cpp:69:16: warning: 'pos2' may be used uninitialized in this function [-Wmaybe-uninitialized]
   69 |         setRoad(A[pos1], B[pos2]);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~
icc.cpp:69:16: warning: 'pos1' may be used uninitialized in this function [-Wmaybe-uninitialized]
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...