Submission #764245

#TimeUsernameProblemLanguageResultExecution timeMemory
764245Dan4LifeMinerals (JOI19_minerals)C++17
0 / 100
1 ms336 KiB
#include "minerals.h" #include <bits/stdc++.h> using namespace std; #define pb push_back #define sz(a) (int)a.size() #define all(a) begin(a),end(a) int n; mt19937 rng(chrono::steady_clock::now().time_since_epoch().count()); set<int> S; void dnc(vector<int> l, vector<int> r, bool d){ if(sz(l)<1) return; if(sz(l)==1) return void(Answer(l[0],r[0])); int mid = sz(l)/2, x, tot; vector<int> v[2],w[2]; for(int i : {0,1}) v[i].clear(),w[i].clear(); if(d==1){ for(int i = 0; i < mid; i++) tot=Query(l[i]),S.insert(l[i]); } else{ for(int i = mid; i<sz(l); i++) tot=Query(l[i]), S.erase(l[i]); } for(int i = 0; i < sz(l); i++) v[i>=mid].pb(l[i]); shuffle(all(r),rng); for(int i : r) x = Query(i), w[x==tot].pb(i), Query(i); dnc(v[0],w[0],0); for(auto u : S) Query(u); S.clear(); dnc(v[1],w[1],1); } void Solve(int N) { n = N; vector<int> v(2*n,0),w[2],z; int p=0; iota(all(v),1); shuffle(all(v),rng); for(int i = 0; i < sz(v); i++){ int x = Query(v[i]); if(x!=p) w[0].pb(v[i]), z.pb(v[i]), S.insert(v[i]),p=x; else w[1].pb(v[i]),p=Query(v[i]); } dnc(w[0],w[1],1); }

Compilation message (stderr)

minerals.cpp: In function 'void dnc(std::vector<int>, std::vector<int>, bool)':
minerals.cpp:27:5: warning: this 'for' clause does not guard... [-Wmisleading-indentation]
   27 |     for(auto u : S) Query(u); S.clear();
      |     ^~~
minerals.cpp:27:31: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'for'
   27 |     for(auto u : S) Query(u); S.clear();
      |                               ^
minerals.cpp:25:37: warning: 'tot' may be used uninitialized in this function [-Wmaybe-uninitialized]
   25 |     for(int i : r) x = Query(i), w[x==tot].pb(i), Query(i);
      |                                    ~^~~~~
#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...