結果
問題 |
No.1424 Ultrapalindrome
|
ユーザー |
|
提出日時 | 2021-03-13 04:11:04 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 84 ms / 2,000 ms |
コード長 | 787 bytes |
コンパイル時間 | 931 ms |
コンパイル使用メモリ | 77,456 KB |
実行使用メモリ | 10,580 KB |
最終ジャッジ日時 | 2024-10-14 16:41:47 |
合計ジャッジ時間 | 3,290 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 29 |
コンパイルメッセージ
main.cpp:8:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type] 8 | main() | ^~~~
ソースコード
#include<iostream> #include<vector> #include<queue> using namespace std; int N; vector<int>G[1<<17]; int dist[1<<17]; main() { cin>>N; for(int i=1;i<N;i++) { int a,b;cin>>a>>b;a--,b--; G[a].push_back(b); G[b].push_back(a); } int id=0; while(id<N&&G[id].size()<=2)id++; if(id==N) { cout<<"Yes"<<endl; return 0; } for(int i=id+1;i<N;i++)if(G[i].size()>2) { cout<<"No"<<endl; return 0; } queue<int>P;P.push(id); for(int i=0;i<N;i++)dist[i]=1e9; dist[id]=0; while(!P.empty()) { int u=P.front();P.pop(); for(int v:G[u])if(dist[v]>dist[u]+1) { dist[v]=dist[u]+1; P.push(v); } } int mx=-1; for(int i=0;i<N;i++)if(G[i].size()==1) { if(mx==-1)mx=dist[i]; else if(mx!=dist[i]) { cout<<"No"<<endl; return 0; } } cout<<"Yes"<<endl; }