結果
問題 | No.812 Change of Class |
ユーザー |
|
提出日時 | 2019-04-12 23:13:37 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 232 ms / 4,000 ms |
コード長 | 1,261 bytes |
コンパイル時間 | 1,513 ms |
コンパイル使用メモリ | 167,636 KB |
実行使用メモリ | 11,288 KB |
最終ジャッジ日時 | 2024-06-12 19:53:10 |
合計ジャッジ時間 | 8,171 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 60 |
ソースコード
#include <bits/stdc++.h> using namespace std; #define int long long vector<int> graph[100010]; signed main(){ int n, m; cin >> n >> m; int a, b; for(int i = 0;i < m;i++){ cin >> a >> b; a--, b--; graph[a].push_back(b); graph[b].push_back(a); } int q; cin >> q; for(int p = 0;p < q;p++){ int dist[100010]; memset(dist, -1, sizeof(dist)); int fi; cin >> fi; queue<pair<int, int>> que; fi--; que.push(make_pair(fi, 0)); int cnt = 0; while(!que.empty()){ int idx = que.front().first; int cost = que.front().second; que.pop(); if(dist[idx] != -1) continue; dist[idx] = cost; if(cost != 0) cnt++; for(int i = 0;i < graph[idx].size();i++){ if(dist[graph[idx][i]] == -1){ que.push(make_pair(graph[idx][i], cost+1)); } } } int ma = -2; for(int i = 0;i < n;i++){ ma = max(ma, dist[i]); } int ans; int i; for(i = 0,ans=1;ans < ma;i++,ans*=2); cout << cnt << " " << i << endl; } return 0; }