Submission #1265958

#TimeUsernameProblemLanguageResultExecution timeMemory
1265958StefanSebezMeetings (JOI19_meetings)C++20
100 / 100
706 ms2144 KiB
#include "meetings.h" #include <bits/stdc++.h> using namespace std; #define fi first #define se second #define pb push_back #define ll long long #define ld long double const int N=2050; mt19937 rng(time(0)); void Resi(vector<int>vtx){ //for(auto i:vtx) printf("%i ",i);printf("\n"); if(vtx.size()<=1) return; shuffle(vtx.begin(),vtx.end(),rng); int u=vtx[0],v=vtx[1]; vector<int>lanac={u}; vector<int>podstablo[N]; podstablo[u].pb(u); podstablo[v].pb(v); for(auto i:vtx){ if(i==u||i==v) continue; int x=Query(u,v,i); if(x==i) lanac.pb(i); podstablo[x].pb(i); } lanac.pb(v); sort(lanac.begin()+1,lanac.end()-1,[&](int i,int j){return Query(u,i,j)==i;}); for(int i=0;i+1<lanac.size();i++){ int x=lanac[i],y=lanac[i+1];if(x>y)swap(x,y); Bridge(x,y); } /*for(auto i:lanac){ printf("%i: ",i);printf("\n"); for(auto j:podstablo[i]) printf("%i ",j);printf("\n"); }*/ for(auto i:lanac) Resi(podstablo[i]); } void Solve(int n) { vector<int>vtx; for(int i=0;i<n;i++) vtx.pb(i); Resi(vtx); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...