Submission #126357

#TimeUsernameProblemLanguageResultExecution timeMemory
126357TadijaSebezMinerals (JOI19_minerals)C++14
90 / 100
78 ms3568 KiB
#include "minerals.h" #include <bits/stdc++.h> using namespace std; #define pb push_back void Solve(vector<int> l, vector<int> r, int in) { if(l.size()==1) { Answer(l[0],r[0]); return; } int pre; vector<int> L[2],R[2]; int sz=l.size()/2; for(int i=0;i<l.size();i++) L[i>=sz].pb(l[i]); for(int i:L[0]) pre=Query(i); sort(r.rbegin(),r.rend()); for(int i:r) { if(L[0].size()==R[0].size()) R[1].pb(i); else if(L[1].size()==R[1].size()) R[0].pb(i); else { int now=Query(i); if(now==pre) { if(in) R[1].pb(i); else R[0].pb(i); } else { if(in) R[0].pb(i); else R[1].pb(i); } pre=now; } } Solve(L[0],R[0],in^1); Solve(L[1],R[1],in); } void Solve(int n) { srand(time(0)); vector<int> l,r; int pre=0; for(int i=1;i<=n*2;i++) { int now=Query(i); if(now!=pre) l.pb(i); else r.pb(i); pre=now; } Solve(l,r,1); }

Compilation message (stderr)

minerals.cpp: In function 'void Solve(std::vector<int>, std::vector<int>, int)':
minerals.cpp:15:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int i=0;i<l.size();i++) L[i>=sz].pb(l[i]);
              ~^~~~~~~~~
minerals.cpp:25:4: warning: 'pre' may be used uninitialized in this function [-Wmaybe-uninitialized]
    if(now==pre)
    ^~
#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...