結果
| 問題 |
No.806 木を道に
|
| コンテスト | |
| ユーザー |
graythunder1
|
| 提出日時 | 2019-06-26 20:33:16 |
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
| 結果 |
TLE
|
| 実行時間 | - |
| コード長 | 952 bytes |
| コンパイル時間 | 784 ms |
| コンパイル使用メモリ | 73,028 KB |
| 実行使用メモリ | 108,968 KB |
| 最終ジャッジ日時 | 2024-06-26 01:31:37 |
| 合計ジャッジ時間 | 4,755 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 8 TLE * 1 -- * 18 |
コンパイルメッセージ
main.cpp: In function ‘int main()’:
main.cpp:35:10: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
35 | scanf("%lld %lld", &a, &b);
| ~~~~~^~~~~~~~~~~~~~~~~~~~~
ソースコード
#include <cstdio>
#include <iostream>
#include <algorithm>
#include <vector>
#include <map>
#include <functional>
using namespace std;
typedef long long int ll;
#define repi(i,a,b) for(ll i=a;i<b;i++)
#define rep(i,a) repi(i,0,a)
#define rrep(i,a) for(ll i=a-1;i>=0;i--)
ll count(ll start, vector<vector<ll>> edges, ll* visited){
visited[start] = 1;
bool stop = true;
ll cnt = 0;
for(auto it = edges[start].begin(); it != edges[start].end(); ++it){
if(!visited[*it]){
cnt += count(*it, edges, visited);
if(!stop) cnt++;
stop = false;
}
}
return cnt;
}
int main(){
ll N;
cin >> N;
vector<vector<ll> > edges(N);
rep(i, N-1){
ll a, b;
scanf("%lld %lld", &a, &b);
edges[a-1].push_back(b-1);
edges[b-1].push_back(a-1);
}
ll visited[N];
rep(i, N) visited[i] = 0;
ll start = 0;
while(edges[start].size() != 1) start++;
cout << count(start, edges, visited) << endl;
return 0;
}
graythunder1