제출 #158934

#제출 시각아이디문제언어결과실행 시간메모리
158934georgerapeanuMeetings (JOI19_meetings)C++17
0 / 100
33 ms504 KiB
#include "meetings.h" #pragma once #include <vector> #include <algorithm> using namespace std; int my_query(int u,int v,int w){ u--; v--; w--; return Query(u,v,w) + 1; } void my_bridge(int u,int v){ u--; v--; Bridge(u,v); } void solve(int root,vector<int> &nodes){ for(int i = 0;i < (int)nodes.size();i++){ if(nodes[i] == root){ swap(nodes[i],nodes.back()); nodes.pop_back(); break; } } if(nodes.size() == 0){ return; } if(nodes.size() == 1){ my_bridge(root,nodes[0]); return ; } vector<pair<int,int> > sons; vector<vector<int> > son_nodes; for(auto it:nodes){ sort(sons.begin(),sons.end(),[&](const pair<int,int> &a,const pair<int,int> &b){return (a.first != b.first ? a.first > b.first : a.second < b.second);}); bool ins = false; for(int i = 0;i < (int)sons.size();i++){ int tmp = my_query(root,sons[i].second,it); if(tmp != root){ sons[i].second = tmp; sons[i].first++; son_nodes[i].push_back(it); ins = true; break; } } if(ins == false){ sons.push_back({1,it}); son_nodes.push_back(vector<int>(1,it)); } } for(int i = 0;i < (int)sons.size();i++){ my_bridge(root,sons[i].second); } for(int i = 0;i < (int)sons.size();i++){ solve(sons[i].second,son_nodes[i]); } } void Solve(int N) { vector<int> nodes; for(int i = 1;i <= N;i++){ nodes.push_back(i); } solve(1,nodes); }

컴파일 시 표준 에러 (stderr) 메시지

meetings.cpp:2:9: warning: #pragma once in main file
 #pragma once
         ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...