神奇的提交记录
  • 板块灌水区
  • 楼主Go_Forward
  • 当前回复2
  • 已保存回复2
  • 发布时间2024/9/22 15:13
  • 上次更新2024/9/22 15:23:35
查看原帖
神奇的提交记录
1253423
Go_Forward楼主2024/9/22 15:13

为啥我在代码里写了freopen也能拿20分? 戳这里

#include<bits/stdc++.h>
using namespace std;
const int maxn=105;
int n,p,cnt;
int edge[maxn][maxn],in[maxn],out[maxn];
int c[maxn],u[maxn];
int vis[maxn];
int main(){
	cin>>n>>p;
	for(int i=1;i<=n;++i){
		cin>>c[i]>>u[i];
		if(c[i]==0)
			c[i]-=u[i];
	}
	for(int i=1;i<=p;++i){
		int x,y,z;
		cin>>x>>y>>z; 
		edge[x][y]=z;
		++in[y];
		++out[x];
	}
	while(cnt!=n){
		for(int i=1;i<=n;++i)
			if(vis[i]==in[i]){
				++cnt;
				vis[i]=-1;
				for(int j=1;j<=n;++j)
					if(edge[i][j]!=0){
						c[j]+=edge[i][j]*c[i];
						++vis[j];
					}
			}
	}
	bool flag=0;
	for(int i=1;i<=n;++i)
		if(out[i]==0)
			if(c[i]>0){
				cout<<i<<' '<<c[i]<<'\n';
				flag=1;
			}
	if(!flag)
		cout<<"NULL";
} 
2024/9/22 15:13
加载中...