记录编号 405389 评测结果 AAAAAAA
题目名称 [NOIP 2003]神经网络 最终得分 100
用户昵称 GravatarHyoi_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(){;}