답안 #765704

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
765704 2023-06-25T03:29:34 Z vjudge1 Network (BOI15_net) C++17
0 / 100
6 ms 11988 KB
// Problem: C - Интернет связь
// Contest: Virtual Judge - IOI contest div-B
// URL: https://vjudge.net/contest/564767#problem/C
// Memory Limit: 256 MB
// Time Limit: 2000 ms
// 
// Powered by CP Editor (https://cpeditor.org)

#include <bits/stdc++.h>
using namespace std;

#define ll long long
#define pb push_back
#define sz(x) (int)x.size()
#define all(v) (v).begin(),(v).end()
#define rall(v) ((v).rbegin()), ((v).rend())
#define out(v)  for(auto& i : v) cout << i << ' ';
#define F first
#define S second
#define int long long

const ll N = 5e5 + 17;
const ll MOD = 1e9 + 7;
const string alf = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";

vector <int > g[N] , ans;
int cnt = 1;

void dfs(int v , int pr = -1){
	if (g[v].size() == 1){
		ans.pb(v);
	}
	for(auto to : g[v]){
		if (pr != to){
			dfs(to , v);
		}
	}
}

void solve (){
	int n;
	cin >>n;
	for(int i = 1; i <= n - 1; i ++){
		int x , y;
		cin >> x >> y;
		g[x].pb(y);
		g[y].pb(x);
	}
	vector <int > lst;
	dfs(1);
	for(auto to : ans){
		cout <<to << " ";
	}
	cout <<(ans.size() + 1) / 2 << endl;
	if (ans.size() % 2 == 0){
		for(int i = 0; i < ans.size() / 2 ; i ++){
			cout <<ans[i] << " " << ans[ans.size() / 2 + i] << endl;
		}
	}
	else {
		for(int i = 0; i < (ans.size() + 1) / 2 - 1; i ++){
			cout <<ans[i] << " " << ans[(ans.size() + 1) / 2 + i] << endl;
		}
		cout << ans[(ans.size() + 1) / 2 - 1] << ' ' << 1 << endl;
	}
}

signed main(){
	// freopen("ones.in" , "r" , stdin) ;
	// freopen("ones.out" , "w" , stdout) ;
	ios::sync_with_stdio(false);
	cin.tie(0);
	int T = 1;
	// int cs = 1;
	// cin >>T;
	while (T --){
		// cout <<"Case " << cs ++<< ":" << endl;
		solve ();
		// cout <<endl;
	}
}

Compilation message

net.cpp: In function 'void solve()':
net.cpp:56:20: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   56 |   for(int i = 0; i < ans.size() / 2 ; i ++){
      |                  ~~^~~~~~~~~~~~~~~~
net.cpp:61:20: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   61 |   for(int i = 0; i < (ans.size() + 1) / 2 - 1; i ++){
      |                  ~~^~~~~~~~~~~~~~~~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Incorrect 6 ms 11988 KB Invalid number of links.
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 6 ms 11988 KB Invalid number of links.
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 6 ms 11988 KB Invalid number of links.
2 Halted 0 ms 0 KB -