結果
問題 |
No.812 Change of Class
|
ユーザー |
![]() |
提出日時 | 2020-06-14 02:54:32 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 168 ms / 4,000 ms |
コード長 | 1,108 bytes |
コンパイル時間 | 1,462 ms |
コンパイル使用メモリ | 166,000 KB |
実行使用メモリ | 9,408 KB |
最終ジャッジ日時 | 2024-06-26 06:32:05 |
合計ジャッジ時間 | 7,911 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 60 |
ソースコード
/** * @FileName a.cpp * @Author kanpurin * @Created 2020.06.14 02:54:23 **/ #include "bits/stdc++.h" using namespace std; typedef long long ll; int main() { int n,m;cin >> n >> m; vector<vector<int>> g(n); for (int i = 0; i < m; i++) { int p,q;cin >> p >> q; p--;q--; g[p].push_back(q); g[q].push_back(p); } int q;cin >> q; for (int i = 0; i < q; i++) { int a; cin >> a; a--; vector<int> dist(n,-1); queue<int> que; que.push(a); dist[a] = 0; int ans = 0; int cnt = 0; while(!que.empty()) { auto q = que.front(); que.pop(); for(int v : g[q]) { if (dist[v] != -1) continue; dist[v] = dist[q] + 1; cnt++; ans = max(ans,dist[v]); que.push(v); } } for(int i = 0; ;i++) { if (1 << i >= ans) { ans = i; break; } } cout << cnt << " " << ans << endl; } return 0; }