結果
| 問題 |
No.806 木を道に
|
| コンテスト | |
| ユーザー |
onsen_manjuuu
|
| 提出日時 | 2020-08-29 02:43:22 |
| 言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 852 bytes |
| コンパイル時間 | 1,690 ms |
| コンパイル使用メモリ | 178,932 KB |
| 実行使用メモリ | 21,524 KB |
| 最終ジャッジ日時 | 2024-11-14 04:56:34 |
| 合計ジャッジ時間 | 4,609 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 9 WA * 18 |
ソースコード
#include<bits/stdc++.h>
using namespace std;
using ll = long long;
vector<int> BFS(vector<vector<int>> Hen, int s) {
const int INF = 1e9;
int n = Hen.size();
vector<int> dist(n, INF);
queue<int> que;
dist[s] = 0;
que.push(s);
while(que.size()) {
auto cur = que.front(); que.pop();
for(auto i : Hen[cur]) {
if(dist[i] != INF)continue;
dist[i] = dist[cur] + 1;
que.push(i);
}
}
return dist;
}
int diameter(vector<vector<int>>(hen)) {
auto dist = BFS(hen, 0);
int idx = max_element(dist.begin(),dist.end()) - dist.begin();
dist = BFS(hen, idx);
return *max_element(dist.begin(), dist.end());
}
int main()
{
int n;
cin >> n;
vector<vector<int>> hen(n);
for(int i = 0; i < n - 1; i++) {
int a, b; cin >> a >> b;
a--, b--;
hen[a].emplace_back(b);
hen[b].emplace_back(a);
}
cout << n-1 - diameter(hen) << endl;
}
onsen_manjuuu