比赛 CSP2023-S模拟赛 评测结果 WWWWWWWWWTTTTTTTTTTT
题目名称 坡伊踹 最终得分 0
用户昵称 llhy 运行时间 34.483 s
代码语言 C++ 内存使用 7.22 MiB
提交时间 2023-10-17 18:58:34
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
const int N=200010;
int a[N];
struct kiiiii{
	int z,o;
}l[N];
struct node{
	int f,t,w;
}p[N];
bool cmp(node n,node m){
	if(n.f==m.f)return n.t<m.t;
	return n.f<m.f;
}
int main(){
	freopen("poitry.in","r",stdin);
	freopen("poitry.out","w",stdout);
	int n,q;
	cin>>n>>q;
	for(int i=1;i<=n;i++){
		cin>>a[i];
	}	
	for(int i=1;i<n;i++){
		cin>>p[i].f>>p[i].t>>p[i].w;
	}
	sort(p+1,p+n,cmp);
	l[1].z=0;
	for(int i=1;i<n;i++){
		l[p[i].t].z=l[p[i].f].z+p[i].w;
		l[p[i].t].o=p[i].f;
	}
	while(q--){
		int u,v;
		long long ans=1e18;
		cin>>u>>v;
		while(v!=0){
			ans=min(ans,(long long)max(l[v].z,a[v]));
			v=l[v].o;
		}
		cout<<ans<<endl;
	}
	fclose(stdin);
	fclose(stdout);
	return 0;
}