Submission #666806

#TimeUsernameProblemLanguageResultExecution timeMemory
666806divadNetwork (BOI15_net)C++14
100 / 100
625 ms49668 KiB
#include <iostream> #include <algorithm> #include <vector> #define MAX 500002 using namespace std; int n,x,y,vf[MAX]; vector<int> v[MAX],frunze; void dfs(int nod){ vf[nod] = 1; bool ok = false; for(auto vecin: v[nod]){ if(vf[vecin] == 0){ ok |= true; dfs(vecin); } } if(!ok){ frunze.push_back(nod); } } int main() { cin >> n; for(int i = 1; i < n; i++){ cin >> x >> y; v[x].push_back(y); v[y].push_back(x); } int rad = 1; for(int i = 1; i <= n; i++){ if(v[i].size() > 1){ rad = i; break; } } dfs(rad); if(frunze.size()%2 == 0){ cout << frunze.size()/2 << "\n"; for(int i = 0; i < frunze.size()/2; i++){ cout << frunze[i] << " " << frunze[i + frunze.size()/2] << "\n"; } }else{ cout << (frunze.size()/2)+1 << "\n"; for(int i = 0; i < frunze.size()/2; i++){ cout << frunze[i] << " " << frunze[i + frunze.size()/2 + 1] << "\n"; } cout << rad << " " << frunze[frunze.size()/2]; } return 0; }

Compilation message (stderr)

net.cpp: In function 'int main()':
net.cpp:41:26: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   41 |         for(int i = 0; i < frunze.size()/2; i++){
      |                        ~~^~~~~~~~~~~~~~~~~
net.cpp:46:26: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   46 |         for(int i = 0; i < frunze.size()/2; i++){
      |                        ~~^~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...