Submission #655938

# Submission time Handle Problem Language Result Execution time Memory
655938 2022-11-06T06:57:05 Z aebov Network (BOI15_net) C++17
Compilation error
0 ms 0 KB
#include<iostream>
#include<vector>
#include<cstring>
#include<utility>
#define pb push_back
#define pii pair<int, int>
#define F first
#define S second
using namespace std;

const int N = (int)5e5 + 5;
int n , u, v, ind[N], _id = 0, root = 1;
vector<int> leafs;
vector<pii> ret;
vector<int> adj[N]; 

void dfs(int v,int p){
	ind[v] = _id ++;
	for(auto u : adj[v])if(u != p)dfs(u , v);
}
int main(){
	ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
	cin >> n;
	for(int i = 1; i < n ; i ++){
		cin >> u >> v;
		adj[u].pb(v);
		adj[v].pb(u);
	}
	for(int i = 1; i <= n; i ++)if(adj[i].size() > 1)root = i;
	dfs(root, root);
	for(int i = 1; i <= n; i ++){
		if(adj[i].size() == 1)ret.pb({ind[i], i});
	}
	sort(ret.begin(), ret.end());
	int sz= ret.size();
	cout << (sz + 1) >> 1;
	for(int i = 0; i < sz/2; i ++)	cout << ret[i].S << " " << ret[i + (sz+1)/2].S << endl;
	if(k&1) cout << ret[sz/2].S << " " << root << endl;
	exit(0);
} 

Compilation message

net.cpp: In function 'int main()':
net.cpp:34:2: error: 'sort' was not declared in this scope; did you mean 'qsort'?
   34 |  sort(ret.begin(), ret.end());
      |  ^~~~
      |  qsort
net.cpp:36:19: error: no match for 'operator>>' (operand types are 'std::basic_ostream<char>' and 'int')
   36 |  cout << (sz + 1) >> 1;
      |  ~~~~~~~~~~~~~~~~ ^~ ~
      |       |              |
      |       |              int
      |       std::basic_ostream<char>
net.cpp:36:19: note: candidate: 'operator>>(int, int)' (built-in)
   36 |  cout << (sz + 1) >> 1;
      |  ~~~~~~~~~~~~~~~~~^~~~
net.cpp:36:19: note:   no known conversion for argument 1 from 'std::basic_ostream<char>' to 'int'
In file included from /usr/include/c++/10/string:56,
                 from /usr/include/c++/10/bits/locale_classes.h:40,
                 from /usr/include/c++/10/bits/ios_base.h:41,
                 from /usr/include/c++/10/ios:42,
                 from /usr/include/c++/10/ostream:38,
                 from /usr/include/c++/10/iostream:39,
                 from net.cpp:1:
/usr/include/c++/10/bits/basic_string.tcc:1476:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> std::basic_istream<_CharT, _Traits>& std::operator>>(std::basic_istream<_CharT, _Traits>&, std::__cxx11::basic_string<_CharT, _Traits, _Allocator>&)'
 1476 |     operator>>(basic_istream<_CharT, _Traits>& __in,
      |     ^~~~~~~~
/usr/include/c++/10/bits/basic_string.tcc:1476:5: note:   template argument deduction/substitution failed:
net.cpp:36:22: note:   'std::basic_ostream<char>' is not derived from 'std::basic_istream<_CharT, _Traits>'
   36 |  cout << (sz + 1) >> 1;
      |                      ^
In file included from /usr/include/c++/10/istream:991,
                 from /usr/include/c++/10/iostream:40,
                 from net.cpp:1:
/usr/include/c++/10/bits/istream.tcc:931:5: note: candidate: 'template<class _CharT, class _Traits> std::basic_istream<_CharT, _Traits>& std::operator>>(std::basic_istream<_CharT, _Traits>&, _CharT&)'
  931 |     operator>>(basic_istream<_CharT, _Traits>& __in, _CharT& __c)
      |     ^~~~~~~~
/usr/include/c++/10/bits/istream.tcc:931:5: note:   template argument deduction/substitution failed:
net.cpp:36:22: note:   'std::basic_ostream<char>' is not derived from 'std::basic_istream<_CharT, _Traits>'
   36 |  cout << (sz + 1) >> 1;
      |                      ^
In file included from /usr/include/c++/10/iostream:40,
                 from net.cpp:1:
/usr/include/c++/10/istream:756:5: note: candidate: 'template<class _Traits> std::basic_istream<char, _Traits>& std::operator>>(std::basic_istream<char, _Traits>&, unsigned char&)'
  756 |     operator>>(basic_istream<char, _Traits>& __in, unsigned char& __c)
      |     ^~~~~~~~
/usr/include/c++/10/istream:756:5: note:   template argument deduction/substitution failed:
net.cpp:36:22: note:   'std::basic_ostream<char>' is not derived from 'std::basic_istream<char, _Traits>'
   36 |  cout << (sz + 1) >> 1;
      |                      ^
In file included from /usr/include/c++/10/iostream:40,
                 from net.cpp:1:
/usr/include/c++/10/istream:761:5: note: candidate: 'template<class _Traits> std::basic_istream<char, _Traits>& std::operator>>(std::basic_istream<char, _Traits>&, signed char&)'
  761 |     operator>>(basic_istream<char, _Traits>& __in, signed char& __c)
      |     ^~~~~~~~
/usr/include/c++/10/istream:761:5: note:   template argument deduction/substitution failed:
net.cpp:36:22: note:   'std::basic_ostream<char>' is not derived from 'std::basic_istream<char, _Traits>'
   36 |  cout << (sz + 1) >> 1;
      |                      ^
In file included from /usr/include/c++/10/istream:991,
                 from /usr/include/c++/10/iostream:40,
                 from net.cpp:1:
/usr/include/c++/10/bits/istream.tcc:963:5: note: candidate: 'template<class _CharT2, class _Traits2> std::basic_istream<_CharT, _Traits>& std::operator>>(std::basic_istream<_CharT, _Traits>&, _CharT2*)'
  963 |     operator>>(basic_istream<_CharT, _Traits>& __in, _CharT* __s)
      |     ^~~~~~~~
/usr/include/c++/10/bits/istream.tcc:963:5: note:   template argument deduction/substitution failed:
net.cpp:36:22: note:   'std::basic_ostream<char>' is not derived from 'std::basic_istream<_CharT, _Traits>'
   36 |  cout << (sz + 1) >> 1;
      |                      ^
In file included from /usr/include/c++/10/iostream:40,
                 from net.cpp:1:
/usr/include/c++/10/istream:803:5: note: candidate: 'template<class _Traits> std::basic_istream<char, _Traits>& std::operator>>(std::basic_istream<char, _Traits>&, unsigned char*)'
  803 |     operator>>(basic_istream<char, _Traits>& __in, unsigned char* __s)
      |     ^~~~~~~~
/usr/include/c++/10/istream:803:5: note:   template argument deduction/substitution failed:
net.cpp:36:22: note:   'std::basic_ostream<char>' is not derived from 'std::basic_istream<char, _Traits>'
   36 |  cout << (sz + 1) >> 1;
      |                      ^
In file included from /usr/include/c++/10/iostream:40,
                 from net.cpp:1:
/usr/include/c++/10/istream:808:5: note: candidate: 'template<class _Traits> std::basic_istream<char, _Traits>& std::operator>>(std::basic_istream<char, _Traits>&, signed char*)'
  808 |     operator>>(basic_istream<char, _Traits>& __in, signed char* __s)
      |     ^~~~~~~~
/usr/include/c++/10/istream:808:5: note:   template argument deduction/substitution failed:
net.cpp:36:22: note:   'std::basic_ostream<char>' is not derived from 'std::basic_istream<char, _Traits>'
   36 |  cout << (sz + 1) >> 1;
      |                      ^
In file included from /usr/include/c++/10/iostream:40,
                 from net.cpp:1:
/usr/include/c++/10/istream:980:5: note: candidate: 'template<class _Istream, class _Tp> typename std::enable_if<std::__and_<std::__not_<std::is_lvalue_reference<_Tp> >, std::__is_convertible_to_basic_istream<_Istream>, std::__is_extractable<typename std::__is_convertible_to_basic_istream<_Tp>::__istream_type, _Tp&&, void> >::value, typename std::__is_convertible_to_basic_istream<_Tp>::__istream_type>::type std::operator>>(_Istream&&, _Tp&&)'
  980 |     operator>>(_Istream&& __is, _Tp&& __x)
      |     ^~~~~~~~
/usr/include/c++/10/istream:980:5: note:   template argument deduction/substitution failed:
/usr/include/c++/10/istream: In substitution of 'template<class _Istream, class _Tp> typename std::enable_if<std::__and_<std::__not_<std::is_lvalue_reference<_Tp> >, std::__is_convertible_to_basic_istream<_Istream>, std::__is_extractable<typename std::__is_convertible_to_basic_istream<_Tp>::__istream_type, _Tp&&, void> >::value, typename std::__is_convertible_to_basic_istream<_Tp>::__istream_type>::type std::operator>>(_Istream&&, _Tp&&) [with _Istream = std::basic_ostream<char>&; _Tp = int]':
net.cpp:36:22:   required from here
/usr/include/c++/10/istream:980:5: error: no type named 'type' in 'struct std::enable_if<false, void>'
net.cpp:38:5: error: 'k' was not declared in this scope
   38 |  if(k&1) cout << ret[sz/2].S << " " << root << endl;
      |     ^