結果

問題 No.1382 Travel in Mitaru city
コンテスト
ユーザー 👑 Nachia
提出日時 2021-02-07 22:53:29
言語 C++17
(gcc 15.2.0 + boost 1.89.0)
コンパイル:
g++-15 -O2 -lm -std=c++17 -Wuninitialized -DONLINE_JUDGE -o a.out _filename_
実行:
./a.out
結果
AC  
実行時間 50 ms / 2,000 ms
コード長 725 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 1,356 ms
コンパイル使用メモリ 217,296 KB
実行使用メモリ 10,900 KB
最終ジャッジ日時 2026-06-17 17:17:04
合計ジャッジ時間 5,809 ms
ジャッジサーバーID
(参考情報)
judge1_0 / judge2_1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 68
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

#include <bits/stdc++.h>
using namespace std;
using LL=long long;
using ULL=unsigned long long;
#define rep(i,n) for(int i=0; i<(n); i++)

int N,M,S,T;
int P[100000];
vector<int> E[100000];
bool F[100000];

int main(){
  scanf("%d%d%d%d",&N,&M,&S,&T); S--; T--;
  rep(i,N) scanf("%d",&P[i]);
  rep(i,M){
    int u,v; scanf("%d%d",&u,&v); u--; v--;
    E[u].push_back(v);
    E[v].push_back(u);
  }

  rep(i,N) F[i]=false;
  priority_queue<pair<int,int>> Q;
  F[S]=true; Q.push({P[S],S});
  int X=P[S];
  int Y=0;
  while(Q.size()){
    int p=Q.top().second; Q.pop();
    if(X>P[p]){ X=P[p]; Y++; }
    for(int e:E[p]){
      if(F[e]) continue; F[e]=true;
      Q.push({P[e],e});
    }
  }

  printf("%d\n",Y);
  return 0;
}
0