感觉我写的没问题啊,为啥会wa??ps(感觉是某lanqiao22年国赛原题)
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define PII pair<int,int>
#define tul tuple<int,int,int>
#define cy cout<<"Yes"<<endl
#define cn cout<<"No"<<endl
#define lc rt<<1
#define rc rt<<1|1
const int N=3e5+6,yyx=4e9+7;
int n,m,d[N],a[N],st[N];
vector<PII> to[N];
void dijkstra(int x){
priority_queue<PII,vector<PII>,greater<PII> > q;
d[x]=0;q.push({0,x});
while(q.size()){
auto now=q.top().second;q.pop();
if(st[now]) continue;
st[now]=1;
for(auto c:to[now]){
int j=c.first,w=c.second;
if(d[j]>d[now]+w+a[now]){
d[j]=d[now]+w+a[now];
if(!st[j]) q.push({d[j],j});
}
}
}
}
inline void solve(){
cin>>n>>m;
for(int i=1;i<=n;++i) cin>>a[i],d[i]=yyx;
for(int i=1;i<=m;++i){
int u,v,w;cin>>u>>v>>w;
to[u].push_back({v,w});
to[v].push_back({u,w});
}
dijkstra(1);
for(int i=2;i<=n;++i) cout<<d[i]+a[i]<<" \n"[i==n];
}
signed main(){
cin.tie(0)->sync_with_stdio(0);
int _=1;
//cin>>_;
while(_--)
solve();
return 0;
}