比赛 中秋节快乐! 评测结果 MMMMMMMMMMMMMMMMMMMM
题目名称 货车运输 最终得分 0
用户昵称 多赤石 运行时间 0.019 s
代码语言 C++ 内存使用 1.35 MiB
提交时间 2024-09-17 11:54:36
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
int a[10005][10005],cnt;
int n,m,q;
bool b[10005],ans=false;
void dfs(int x,int y){
	if(b[x]){
		cnt = -1;
		ans = true;
		return;
	}
	b[x]= 1;
	if(a[x][y]!=0){
		cnt += a[x][y];
		ans = true;
	 	return; 
	}
	for(int i=1;i<=n;i++){
		if(a[x][i]!=0&&b[i]==0){
			cnt += a[x][i];
			dfs(i,y);
		}
	} 
	return;
}
int main(){
	freopen("truck.in","r",stdin);
	freopen("truck.out","w",stdout);
	memset(a,0,sizeof(a));
	memset(b,false,sizeof(b));
	cin >> n >> m;
	for(int i=1;i<=m;i++){
		int x,y,z;
		scanf("%d %d %d",&x,&y,&z);
		a[x][y] = max(a[x][y] , z);
	}
	cin >> q;
	for(int i=1;i<=q;i++){
		cnt = 0;
		int x,y;
		cin >> x >> y;
		dfs(x,y);
		memset(b,false,sizeof(b));
		printf("%d\n",cnt);
		ans=false; 
	}
	return 0;
}