挂#2玄关求调
查看原帖
挂#2玄关求调
1353416
zhizhi_fengxi楼主2025/2/1 20:42
#include<bits/stdc++.h>
using namespace std;
int c[120],u[120],w[120][120],r[120],ch[120]; 
int n,q;
queue<int> p;
int main(){
	cin>>n>>q;
	for(int i=1;i<=n;i++) cin>>c[i]>>u[i];
	for(int i=1;i<=q;i++){
		int a,b,c;
		cin>>a>>b>>c;
		w[a][b]=c; 
		r[b]++;
		ch[a]++; 
	};
	for(int i=1;i<=n;i++) if(!r[i]) p.push(i);
	while(!p.empty()){
		int v=p.front();
		p.pop();
		for(int i=1;i<=n;i++){
			if(w[v][i]){
				c[i]+=w[v][i]*c[v];
				r[i]--;
				if(!r[i]) {
					p.push(i);
					c[i]-=u[i];
				}
			}
		}
	}
	bool f=0;
	for(int i=1;i<=n;i++) {
		if(!ch[i] && c[i]>0) f=1;
	}
	if(f){
		for(int i=1;i<=n;i++) {
			if(!ch[i]) cout<<i<<" "<<c[i]<<endl;
		}
	}
	else cout<<"NULL";
	return 0;
}
2025/2/1 20:42
加载中...