记录编号 |
405389 |
评测结果 |
AAAAAAA |
题目名称 |
[NOIP 2003]神经网络 |
最终得分 |
100 |
用户昵称 |
Hyoi_0Koto |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.000 s |
提交时间 |
2017-05-16 19:34:10 |
内存使用 |
0.00 MiB |
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<cctype>
#include<queue>
#include<vector>
using namespace std;
const int maxn=201;
int n,p;
struct nodes{int c,u,in,out;}a[maxn];
struct lines{int t,w;};
vector<lines> g[maxn];
queue<int> q;
bool inq[maxn];
inline void in(int &x){
x=0;int f=1;char t=getchar();
while(!isdigit(t)){if(t=='-')f=-1;t=getchar();}
while(isdigit(t)){x=x*10+t-48;t=getchar();}
x*=f;
}
inline void input(){
in(n);in(p);
/*
for(int i=1;i<=n;i++){
a[i].in=0;a[i].out=0;
}
*/
for(int i=1;i<=n;i++){
nodes uc;int ui,ci;
in(ci);in(ui);
uc.c=ci;uc.u=ui;uc.in=0;uc.out=0;
a[i]=uc;
}
for(int i=1;i<=p;i++){
lines tw;int fi,ti,wi;
in(fi);in(ti);in(wi);
tw.t=ti;tw.w=wi;
g[fi].push_back(tw);
a[fi].out++;a[ti].in++;
}
}
inline void bfs(){
for(int i=1;i<=n;i++){
if((!a[i].in)&&(a[i].c>0)){
q.push(i);inq[i]=1;
}
}
while(!q.empty()){
int now=q.front();q.pop();inq[now]=0;
if(a[now].c>0)
for(int i=0;i<g[now].size();i++){
a[g[now][i].t].c+=g[now][i].w*a[now].c;
a[g[now][i].t].in--;
if(!a[g[now][i].t].in){
a[g[now][i].t].c-=a[g[now][i].t].u;
q.push(g[now][i].t);
inq[g[now][i].t]=1;
}
}
}
}
inline void output(){
int flag=1;
for(int i=1;i<=n;i++){
if(!a[i].out&&a[i].c>0){
printf("%d %d\n",i,a[i].c);
if(flag) flag=0;
}
}
if(flag) printf("NULL");
}
inline int mian(){
freopen("sjwl.in","r",stdin);
freopen("sjwl.out","w",stdout);
input();
bfs();
output();
}
int miku=mian();
int main(){;}