Submission #1034514

#TimeUsernameProblemLanguageResultExecution timeMemory
1034514sinatbtfardNetwork (BOI15_net)C++17
100 / 100
280 ms47824 KiB
#include <bits/stdc++.h>

#define pb push_back

using namespace std;

const int maxn = 5e5 + 1;

int n;
vector <int> leaves, adj[maxn];
 
void dfs (int v, int p){
    if (adj[v].size() == 1)
        leaves.pb(v);
    for (auto u : adj[v])
        if (u != p)
            dfs(u, v);
}

int main(){
	ios_base::sync_with_stdio(0);
	cin >> n;
	for (int x, y, i = 1; i < n; i++){
		cin >> x >> y;
		adj[x].pb(y);
		adj[y].pb(x);
	}
	for (int i = 1; i <= n; i++){
	    if (adj[i].size() != 1){
	        dfs(i, -1);
	        break;
	    }
	}
	cout << (leaves.size() + 1) / 2 << '\n';
	for(int i = 0; i < (leaves.size() + 1) / 2; i++) 
		cout << leaves[i] << " " << leaves[i + (leaves.size() / 2)] << '\n';
}

Compilation message (stderr)

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