Submission #262103

#TimeUsernameProblemLanguageResultExecution timeMemory
262103dooweyMeetings (JOI19_meetings)C++14
0 / 100
3069 ms512 KiB
#include "meetings.h" #include <bits/stdc++.h> using namespace std; typedef pair<int, int> pii; #define fi first #define se second #define mp make_pair #define fastIO ios::sync_with_stdio(false);cin.tie(0);cout.tie(0); int n; const int MAXN = 2020; int par[MAXN]; vector<int> mergesort(vector<int> a){ if(a.size() == 1) return a; int mid = (int)a.size()/2; vector<int> lef, rig; for(int i = 0 ; i < a.size(); i ++ ){ if(i < mid) lef.push_back(a[i]); else rig.push_back(a[i]); } lef = mergesort(lef); rig = mergesort(rig); vector<int> srt; int p = 0; for(int i = 0 ; i < lef.size(); i ++ ){ while(p < rig.size() && Query(0, lef[i], rig[p]) == rig[p]){ srt.push_back(rig[p]); p ++ ; } srt.push_back(lef[i]); } while(p < rig.size()){ srt.push_back(rig[p]); p ++ ; } return srt; } void Solve(int N) { n = N; vector<int> ord; for(int i = 1; i < n ; i ++ ){ ord.push_back(i); par[i] = -1; } random_shuffle(ord.begin(), ord.end()); for(auto nd : ord){ if(par[nd] != -1) continue; set<int> gt; int res; for(int j = 1; j < n; j ++ ){ if(j == nd) continue; res = Query(0, j, nd); gt.insert(res); } gt.insert(nd); vector<int> ss; for(auto p : gt) if(p != 0)ss.push_back(p); ss = mergesort(ss); par[ss[0]] = 0; for(int i = 1; i < ss.size(); i ++ ) par[ss[i]] = ss[i - 1]; } for(int i = 1; i < n; i ++ ){ Bridge(par[i], i); } }

Compilation message (stderr)

meetings.cpp: In function 'std::vector<int> mergesort(std::vector<int>)':
meetings.cpp:23:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int i = 0 ; i < a.size(); i ++ ){
                     ~~^~~~~~~~~~
meetings.cpp:33:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int i = 0 ; i < lef.size(); i ++ ){
                     ~~^~~~~~~~~~~~
meetings.cpp:34:17: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         while(p < rig.size() && Query(0, lef[i], rig[p]) == rig[p]){
               ~~^~~~~~~~~~~~
meetings.cpp:40:13: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     while(p < rig.size()){
           ~~^~~~~~~~~~~~
meetings.cpp: In function 'void Solve(int)':
meetings.cpp:70:26: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for(int i = 1; i < ss.size(); 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...