Submission #951420

#TimeUsernameProblemLanguageResultExecution timeMemory
951420Doncho_BonbonchoNetwork (BOI15_net)C++14
100 / 100
468 ms63436 KiB
#include <bits/stdc++.h> using namespace std; template< class T, class T2 > inline bool chkmin( T& a, const T2& b ){ return a > b ? a = b, 1 : 0; } template< class T, class T2 > inline bool chkmax( T& a, const T2& b ){ return a < b ? a = b, 1 : 0; } #ifndef LOCAL #define cerr if( false )cerr #endif #define out(x) #x << " = " << x << " " typedef long long ll; const int MAX_N = 1e6 + 42; const ll mod = 1e9 + 7; std::vector< int > v[MAX_N]; int par[MAX_N]; std::vector< int > leaves; void dfs( int x, int p = -1 ){ par[x] = p; if( v[x].size() == 1 ) leaves.push_back( x ); for( auto j : v[x] ){ if( j == p ) continue; dfs( j, x ); } } int main (){ #ifndef LOCAL std::ios_base::sync_with_stdio( false ); std::cin.tie( NULL ); std::cout.tie( NULL ); #endif int n; std::cin >> n; for( int i=0 ; i < n-1 ; i++ ){ int a, b; std::cin >> a >> b; a--; b--; v[a].push_back( b ); v[b].push_back( a ); } int st = 0; dfs( st ); std::cout << ( leaves.size() +1 ) /2 << endl; int add = leaves.size() >> 1; for( int i=0 ; i + add < leaves.size() ; i++ ){ std::cout << leaves[i] +1 << " " << leaves[i + add] +1 << endl; } return 0; }

Compilation message (stderr)

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