結果
問題 | No.812 Change of Class |
ユーザー |
![]() |
提出日時 | 2019-04-17 13:11:24 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,603 bytes |
コンパイル時間 | 842 ms |
コンパイル使用メモリ | 86,076 KB |
実行使用メモリ | 9,280 KB |
最終ジャッジ日時 | 2024-06-12 20:53:23 |
合計ジャッジ時間 | 6,682 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 WA * 1 |
other | AC * 10 WA * 50 |
ソースコード
#include <iostream>#include <vector>#include <algorithm>#include <map>#include <string>#include <queue>#include <stack>#include <math.h>#include <set>#define ALL(obj) (obj).begin(),(obj).end()#define RALL(obj) (obj).rbegin(),(obj).rend()#define P pair<int, int>#define MOD 1000000007#define INF 2147483647#define NINF (-2147483647-1)#define LLINF 9223372036854775807using ll = long long;using namespace std;struct edge {int to;edge(int to) :to(to){}};int main() {int N, M;cin >> N >> M;vector<vector<edge>> G(N,vector<edge>());for (int i = 0; i < M; i++){int p, q;cin >> p >> q;p--; q--;G[p].push_back(edge(q));G[q].push_back(edge(p));}int Q;cin >> Q;vector<bool> visited(N);vector<P> ans(Q);for (int i = 0; i < Q; i++){int a, m = -1, cnt = -1;cin >> a;a--;queue<P> que;fill(visited.begin(), visited.end(), false);que.push(P(a,0));while (!que.empty()) {P p = que.front(); que.pop();if (visited[p.first]) continue;visited[p.first] = true;cnt++;for (int j = 0; j < G[p.first].size(); j++){que.push(P(G[p.first][j].to, p.second + 1));}m = max(m, p.second);}ans[i].first = cnt;ans[i].second = max(0,m-1);}for (int i = 0; i < Q; i++){cout << ans[i].first << " " << ans[i].second << endl;}getchar(); getchar();return 0;}