結果

問題 No.3326 岩井星人の帰星
コンテスト
ユーザー DeltaStruct
提出日時 2025-03-04 01:44:18
言語 C++17
(gcc 13.3.0 + boost 1.87.0)
結果
WA  
実行時間 -
コード長 862 bytes
コンパイル時間 1,679 ms
コンパイル使用メモリ 204,720 KB
実行使用メモリ 22,036 KB
最終ジャッジ日時 2025-11-01 09:24:06
合計ジャッジ時間 8,827 ms
ジャッジサーバーID
(参考情報)
judge5 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 52 WA * 7
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <bits/stdc++.h>
using namespace std;

int main(){
  int n,m,mx = 2e5+1; cin >> n >> m; vector<vector<int>> G(n); for (int i(0),a,b;i < m;++i){
    cin >> a >> b; --a,--b; G[a].emplace_back(b),G[b].emplace_back(a);
  }
  int q; cin >> q; vector<vector<int>> A(mx); vector<int> cant(n); for (int i(0),a,b;i < q;++i){
    cin >> a >> b; A[b].emplace_back(a-1),cant[a-1] = max(cant[a-1],b);
  }
  for (int i(mx-1);i;--i) for (int k:A[i]) if (cant[k]==i) for (int j:G[k]) if (cant[j]<i-1){
    cant[j] = i-1,A[i-1].emplace_back(j);
  }
  vector<int> dist(n,1e9); queue<int> que; dist[0] = 0,que.emplace(0);
  while(!que.empty()){
    int x = que.front(); que.pop();
    for (int y:G[x]) if (cant[y]==0&&dist[y]>dist[x]+1) dist[y] = dist[x]+1,que.emplace(y);
  }
  if (dist[n-1]==1e9) cout << "No" << endl;
  else cout << "Yes" << endl << dist[n-1] << endl;
}
0