Submission #428538

#TimeUsernameProblemLanguageResultExecution timeMemory
428538errorgornPark (JOI17_park)C++17
47 / 100
1010 ms772 KiB
#include "park.h" #include <bits/stdc++.h> using namespace std; #define ll long long #define ii pair<ll,ll> #define fi first #define se second #define endl '\n' #define puf push_front #define pof pop_front #define pub push_back #define pob pop_back #define lb lower_bound #define ub upper_bound #define rep(x,s,e) for (auto x=s-(s>e);x!=e-(s>e);s<e?x++:x--) #define all(x) (x).begin(),(x).end() #define sz(x) (int) (x).size() mt19937 rng(chrono::steady_clock::now().time_since_epoch().count()); int t,n; int Ask(int i,int j,vector<int> v){ //cout<<"Ask: "<<i<<" "<<j<<" | "; for (auto &it:v) cout<<it<<" "; cout<<endl; if (i>j) swap(i,j); //the fuck? int arr[n]; memset(arr,0,sizeof(arr)); for (auto &it:v) arr[it]=1; return Ask(i,j,arr); } void ans(int i,int j){ if (i>j) swap(i,j); Answer(i,j); } void rec(vector<int> v,int p){ //cout<<"debug: "; for (auto &it:v) cout<<it<<" "; cout<<endl; if (sz(v)==1) return; shuffle(all(v),rng); if (t==3) rep(x,0,sz(v)) if (v[x]==p) swap(v[x],v.back()); int pivot=v.back(); v.pob(); while (sz(v)){ vector<int> split; vector<int> rest; split.pub(v.back()); for (auto &it:v){ if (it==split[0]) continue; if (Ask(split[0],it,v)==1) split.pub(it); else rest.pub(it); } //now we need to find how split is connected to pivot vector<int> cset={pivot}; int connect; for (auto &it:split){ cset.pub(it); if (Ask(it,pivot,cset)){ ans(it,pivot); connect=it; break; } } rec(split,connect); v=rest; } } void Detect(int T, int N) { t=T,n=N; if (t==1){ rep(x,0,n) rep(y,x+1,n){ if (Ask(x,y,{x,y})==1) Answer(x,y); } } else{ vector<int> proc; rep(x,0,n) proc.pub(x); rec(proc,0); } }

Compilation message (stderr)

park.cpp: In function 'void rec(std::vector<int>, int)':
park.cpp:79:6: warning: 'connect' may be used uninitialized in this function [-Wmaybe-uninitialized]
   79 |   rec(split,connect);
      |   ~~~^~~~~~~~~~~~~~~
#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...