結果
問題 | No.812 Change of Class |
ユーザー |
|
提出日時 | 2019-04-12 23:08:50 |
言語 | C++11 (gcc 13.3.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,234 bytes |
コンパイル時間 | 1,618 ms |
コンパイル使用メモリ | 165,684 KB |
実行使用メモリ | 9,976 KB |
最終ジャッジ日時 | 2024-06-12 19:51:40 |
合計ジャッジ時間 | 7,607 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 35 WA * 25 |
ソースコード
#include <bits/stdc++.h> using namespace std; vector<int> graph[100010]; int 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(cost != 0) cnt++; if(dist[idx] != -1) continue; dist[idx] = cost; 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; }