結果
問題 | No.812 Change of Class |
ユーザー |
![]() |
提出日時 | 2019-04-13 22:22:21 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 189 ms / 4,000 ms |
コード長 | 1,131 bytes |
コンパイル時間 | 3,003 ms |
コンパイル使用メモリ | 165,852 KB |
実行使用メモリ | 9,432 KB |
最終ジャッジ日時 | 2024-06-12 20:41:00 |
合計ジャッジ時間 | 8,540 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 60 |
ソースコード
#include<bits/stdc++.h> using namespace std; int logg(int a,int n){ int now=1; for(int i=0;;i++){ if(now>=n){ return i; } now*=a; } } int main(){ int n,m;cin>>n>>m; vector<int> v[n+1]; for(int i=0;i<m;i++){ int p,q;cin>>p>>q; v[p].push_back(q); v[q].push_back(p); } int Q;cin>>Q; for(int i=0;i<Q;i++){ int a;cin>>a; bool used[n+1]; fill(used,used+n+1,false); queue<int> q; q.push(a); used[a]=true; int cnt=-1; queue<int> dis; dis.push(0); int ma=0; while(q.size()>0){ int now=q.front(); int d=dis.front(); dis.pop(); q.pop(); cnt++; ma=max(ma,d); for(int j=0;j<v[now].size();j++){ if(used[v[now][j]]==false){ used[v[now][j]]=true; q.push(v[now][j]); dis.push(d+1); } } } int u=logg(2,ma); cout<<cnt<<" "<<u<<endl; } }