結果
問題 | No.806 木を道に |
ユーザー |
![]() |
提出日時 | 2019-02-24 14:52:50 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
RE
(最新)
AC
(最初)
|
実行時間 | - |
コード長 | 633 bytes |
コンパイル時間 | 538 ms |
コンパイル使用メモリ | 61,296 KB |
実行使用メモリ | 814,200 KB |
最終ジャッジ日時 | 2024-07-07 03:39:42 |
合計ジャッジ時間 | 4,905 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | RE * 1 MLE * 1 |
other | -- * 27 |
コンパイルメッセージ
main.cpp: In function ‘bool dfs(int, int)’: main.cpp:19:1: warning: no return statement in function returning non-void [-Wreturn-type] 19 | } | ^
ソースコード
#include <iostream> #include <vector> #include <cassert> using namespace std; int N,C[100010],a,b; int upp = 1e5; int visited[100010] = {}; int cnt = 0; bool judge = true; vector<vector<int>> v(100010); bool dfs(int n,int m){ cnt++; visited[n] = 1; for(auto x:v[n]){ if(x!=m && visited[x]==0) dfs(x,n); else if(x!=m && visited[x]==1) judge = false; } } int main(){ cin >> N; assert(N<=upp); for(int i=0;i<N-1;i++){ cin >> a >> b; v[a].push_back(b); v[b].push_back(a); C[a]++; C[b]++; } dfs(1,0); assert(judge && cnt==N); int ans = 0; for(int i=1;i<=N;i++){ ans += max(C[i]-2,0); } cout << ans << endl; }