求调(必关,勿喷)
查看原帖
求调(必关,勿喷)
1085328
_logic楼主2025/1/21 17:10
#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,a,f[1145],p,u,v,c,k[1145],ui[1145],d[1145],ci[1145];
queue<int> q;
struct xian{
	int v,c;
};
vector<xian> e[1145];
signed main(){
	cin>>n>>p;
	for(int j=1; j<=n; j++)
		cin>>ci[j]>>ui[j];
	for(int i=1; i<=p; i++){
		cin>>u>>v>>c;
		e[u].push_back(xian{v,c});
		f[v]++;
	}
	for(int i=1; i<=n; i++)
		if(!f[i])
			q.push(i);
	while(q.size()){
		int u=q.front();
		q.pop();
		for(int j=0; j<e[u].size(); j++){
			f[e[u][j].v]--;
			if(!f[e[u][j].v])	q.push(e[u][j].v);
		}
		int s=0;
		for(int i=0; i<e[u].size(); i++)
			s+=e[u][i].c;	
		s-=ui[u];
		ci[u]=s;
	}
	int cnt=0;
	for(int i=1; i<=n; i++)
		if(ci[i]>=0){
			cout<<i<<" "<<ci[i]<<endl;
			cnt++;
		}
	if(!cnt)
		cout<<"NULL";
	return 0;
}
2025/1/21 17:10
加载中...