제출 #148102

#제출 시각아이디문제언어결과실행 시간메모리
148102WhipppedCreamNetwork (BOI15_net)C++17
100 / 100
585 ms57848 KiB
#include <bits/stdc++.h> //#ifdef atom #else #endif using namespace std; typedef long long ll; typedef pair<int, int> ii; #define X first #define Y second #define vi vector<int> #define vii vector< ii > #define pb push_back const int maxn = 5e5+5; vi adj[maxn]; vi leaf; void dfs(int u, int p) { bool found = 0; for(auto v : adj[u]) { if(v == p) continue; dfs(v, u); found = 1; } if(!found) leaf.pb(u); } int main() { //#ifndef atom freopen(".in", "r", stdin); freopen(".out", "w", stdout); #endif int n; scanf("%d", &n); for(int i = 0; i< n-1; i++) { int u, v; scanf("%d %d", &u, &v); adj[u].pb(v); adj[v].pb(u); } int s = 1; for(int i = 1; i<= n; i++) if(adj[i].size()> 1) s = i; dfs(s, 0); printf("%d\n", (leaf.size()+1)/2); int mid = (leaf.size()+1)/2; for(int i = 0; i< mid; i++) { printf("%d %d\n", leaf[i], leaf[min((int) leaf.size()-1, mid+i)]); } }

컴파일 시 표준 에러 (stderr) 메시지

net.cpp: In function 'int main()':
net.cpp:36:37: warning: format '%d' expects argument of type 'int', but argument 2 has type 'std::vector<int>::size_type {aka long unsigned int}' [-Wformat=]
     printf("%d\n", (leaf.size()+1)/2);
                    ~~~~~~~~~~~~~~~~~^
net.cpp:27:17: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     int n; scanf("%d", &n);
            ~~~~~^~~~~~~~~~
net.cpp:30:24: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         int u, v; scanf("%d %d", &u, &v);
                   ~~~~~^~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...