比赛 2025暑期集训第5场图论专场 评测结果 AAAAAAAAAA
题目名称 Timeline 最终得分 100
用户昵称 二乾五 运行时间 1.778 s
代码语言 C++ 内存使用 10.70 MiB
提交时间 2025-07-09 11:39:36
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;

#define ll long long
#define copy(a,b) copy(begin(a),end(a),begin(b))
#define ld long double
#define dot(x) fixed<<setprecision(x)
#define foru(a,b,c) for(ll a=b;a<=c;a++)

ll n,m,s[200005],c,dis[200005],cnt[200005];
bool vis[200005];
vector<vector<pair<ll,ll>>>a(200005);
queue<ll>q;

void spfa(ll x=0){
    foru(i,1,n)dis[i]=INT_MIN;
    q.push(x);
    while(!q.empty()){
        ll u=q.front();
        q.pop();
        vis[u]=0;
        for(auto v:a[u]){
            if(dis[v.first]<dis[u]+v.second){
                dis[v.first]=max(dis[u]+v.second,dis[v.first]);
                if(!vis[v.first]){
                    q.push(v.first);
                    vis[v.first]=1;
                }
            }
        }
    }
}

int main(){
    #ifndef bendibianyi
    #ifndef ONLINE_JUDGE
        freopen("usaco_Feb_timeline.in" ,"r",stdin );
        freopen("usaco_Feb_timeline.out","w",stdout);
    #endif
    #endif
    cin>>n>>m>>c;
    foru(i,1,n){
        cin>>s[i];
    }
    foru(i,1,c){
        ll x,y,z;
        cin>>x>>y>>z;
        a[x].push_back({y,z});
    }
    foru(i,1,n){
        a[0].push_back({i,s[i]});
    }
    spfa();
    foru(i,1,n){
        cout<<dis[i]<<endl;
    }
    return 0;
}