Submission #485993

#TimeUsernameProblemLanguageResultExecution timeMemory
485993blueMinerals (JOI19_minerals)C++17
40 / 100
26 ms3416 KiB
#include "minerals.h" #include <vector> #include <iostream> #include <algorithm> using namespace std; using vi = vector<int>; const int maxN = 43'000; int N; vi mushroom(1+2*maxN, 0); void dnc(vi L, vi R) { // cerr << "dnc "; // for(int l:L) cerr << l << ' '; // cerr << " | "; // for(int r:R) cerr << r << ' '; // cerr << "\n"; if(int(L.size()) == 1) Answer(L[0], R[0]); else { int K = int(L.size()); vi L1, L2; for(int i = 0; i < K/2; i++) L1.push_back(L[i]); for(int i = K/2; i < K; i++) L2.push_back(L[i]); int Q; for(int l: L1) Q = Query(l); //enable vi R1, R2; for(int r:R) { int Q1 = Query(r); if(Q1 == Q) { R1.push_back(r); } else { R2.push_back(r); } Q1 = Query(r); } for(int l: L1) Q = Query(l); dnc(L1, R1); dnc(L2, R2); } } void Solve(int N_) { N = N_; int ct = 0; for(int i = 1; i <= 2*N; i++) { int Q = Query(i); if(Q > ct) { // cerr << "increasing ct = " << ct << " at " << i << '\n'; ct++; mushroom[i] = ct; // cerr << i << " : " << mushroom[i] << '\n'; } } for(int i = 1; i <= 2*N; i++) Query(i); // cerr << "check\n"; // for(int i = 1; i <= 2*N; i++) cerr << i << " : " << mushroom[i] << '\n'; vi leftval, rightval; for(int i = 1; i <= 2*N; i++) { if(mushroom[i]) leftval.push_back(i); else rightval.push_back(i); } dnc(leftval, rightval); }

Compilation message (stderr)

minerals.cpp: In function 'void dnc(vi, vi)':
minerals.cpp:45:13: warning: 'Q' may be used uninitialized in this function [-Wmaybe-uninitialized]
   45 |             if(Q1 == Q)
      |             ^~
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...