记录编号 |
461210 |
评测结果 |
AAAAAAA |
题目名称 |
[NOIP 2003]神经网络 |
最终得分 |
100 |
用户昵称 |
Emine |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.002 s |
提交时间 |
2017-10-19 16:14:17 |
内存使用 |
0.48 MiB |
显示代码纯文本
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define maxn 205
using namespace std;
int read(){
int x=0,f=1;char ch=getchar();
while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
return x*f;
}
int n,m,q[maxn],f[maxn],u[maxn],a[maxn][maxn],c[maxn],t=1,w=0;
bool inq[maxn],flag=false;
void bfs(){
int x;
while(t<=w){
x=q[t];t++;
if(f[x]>0&&c[x])
for(int i=1;i<=n;i++)
if(a[x][i]){
f[i]+=a[x][i]*f[x];
if(!inq[i]){q[++w]=i;f[i]-=u[i];inq[i]=true;}
}
}
}
int main(){
freopen("sjwl.in","r",stdin);
freopen("sjwl.out","w",stdout);
n=read(),m=read();
for(int i=1;i<=n;i++){
f[i]=read(),u[i]=read();
if(f[i]!=0){
q[++w]=i;
inq[i]=true;
}
}
for(int i=1;i<=m;i++){
int u=read(),v=read(),w=read();
c[u]++;a[u][v]=w;
}
bfs();
for(int i=1;i<=n;i++)
if(!c[i]&&f[i]>0) printf("%d %d\n",i,f[i]),flag=true;
if(!flag)printf("NULL\n");
return 0;
}