比赛 |
ctime蒟蒻生日赛 |
评测结果 |
AAAAAWW |
题目名称 |
神经网络 |
最终得分 |
71 |
用户昵称 |
BaDBoY |
运行时间 |
0.004 s |
代码语言 |
C++ |
内存使用 |
0.35 MiB |
提交时间 |
2017-10-17 18:32:13 |
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<queue>
using namespace std;
int n,m,ji[101][101],rudu[101],tai[101],que[101],x,y,z;
bool pan[101];
int read() {
int s=0;
char ch=getchar();
while(ch>'9'||ch<'0')
ch=getchar();
while(ch>='0'&&ch<='9') {
s=s*10+ch-'0';
ch=getchar();
}
return s;
}
queue<int> q;
int main() {
freopen("sjwl.in","r",stdin);
freopen("sjwl.out","w",stdout);
n=read();
m=read();
memset(ji,0x3f,sizeof(ji));
for(int i=1; i<=n; i++) {
scanf("%d%d",&x,&y);
tai[i]=x,que[i]=y;
}
for(int i=1; i<=m; i++) {
scanf("%d%d%d",&x,&y,&z);
ji[x][y]=z;
pan[x]=1;
rudu[y]++;
}
for(int i=1; i<=n; i++)
if(rudu[i]==0) {
rudu[i]--;
q.push(i);
}
for(int i=1; i<=n; i++)
if(rudu[i]>0)
tai[i]-=que[i];
int temp;
while(!q.empty()) {
temp=q.front();
q.pop();
for(int i=1; i<=n; i++) {
if(ji[temp][i]<0x7ffff) {
rudu[i]--;
if(tai[temp]>0) tai[i]+=tai[temp]*ji[temp][i];
if(rudu[i]==0) {
rudu[i]--;
q.push(i);
}
}
}
}
bool duan=0;
for(int i=1; i<=n; i++)
if(pan[i]==0&&tai[i]>0) {
duan=1;
break;
}
if(duan==0) {
cout<<"NULL";
return 0;
}
for(int i=1; i<=n; i++)
if(pan[i]==0&&tai[i]>0)
cout<<i<<" "<<tai[i]<<endl;
// while(1);
return 0;
}