60pts求助
查看原帖
60pts求助
638753
QWQ_Xiari楼主2023/2/18 18:39

60pts求助,RE+WA

#include<bits/stdc++.h>
using namespace std;
struct qaq {
	int opt,u,c;
};
struct qwq {
	int c,u;
} a[100002];
int chu[100002],ru[100002],w[10002][10002],n,m,ans[100002],fa[10002][10002],num[100002];
bool vis[100002];
int main() {
	cin>>n>>m;
	for(int i=1; i<=n; i++) {
		cin>>a[i].c >>a[i].u ;
	}for(int i=1; i<=m; i++) {
		int x,y,z;
		cin>>x>>y>>z;
		w[x][y]=z;
		w[y][x]=z;
		chu[x]++;
		ru[y]++;
	}for(int i=1; i<=n; i++) {
		int ans=a[i].c ;
		for(int j=1; j<=n; j++) {
			if(ans!=0){
				break;
			}else if(!vis[a[j].c ]) {
				a[i].c+=a[j].c * w[i][j];
			}

		}
		if(!ans) a[i].c -=a[i].u ;
		if(a[i].c <=0) vis[a[i].c ]=1;
	}memset(vis,1,sizeof(vis));
	for(int i=1; i<=n; i++) {
		for(int j=1; j<=n; j++) {
			if((a[i].c <=0&&w[i][j])||vis[i]==0) {
				ru[j]--;
				vis[i]=1;
			}
		}
	}bool p=0;
	for(int i=1; i<=n; i++) {
		if(chu[i]==0&&ru[i]!=0&&a[i].c >0) {
			p=1;
			cout<<i<<" "<<a[i].c <<endl;
		}
	}if(!p){
		cout<<"NULL"<<endl;	
	} 
	return 0;

}
2023/2/18 18:39
加载中...