注意如果是

  • \(if(c[i])\)

这条语句并没有说明c[i]不为负数,所以说最好老老实实的写

#include<cstdio>
#define _ 0
using namespace std;
int c[105],u[105];
struct ben
{
int i,j,w;
}a[10005];
int h[10005],in[105],out[105],vis[105];
int main()
{
int n,p;
scanf("%d%d",&n,&p);
for(int i=1;i<=n;i++)
{
scanf("%d%d",&c[i],&u[i]);
if(c[i]>0)u[i]=-1;
}
int cnt=0;
for(int k=1;k<=p;k++)
{
int i,j,w;
scanf("%d%d%d",&i,&j,&w);
a[++cnt]=(ben){j,w,h[i]};//终点,权值,以及起点所对应的边记录的编号
h[i]=cnt;
in[j]++;
out[i]++;
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
if(in[j]==0&&vis[j]==0)
{
vis[j]=1;
if(u[j]!=-1)c[j]-=u[j];
for(int k=h[j];k>0;k=a[k].w)
{
if(c[j]>0)
{
c[a[k].i]+=c[j]*a[k].j;
}
in[a[k].i]--;
}
break;
}
}
}
int flag=0;
for(int i=1;i<=n;i++)
{
if(out[i]==0&&c[i]>0)
{
flag=1;
break;
}
}
if(flag==1)
{
for(int i=1;i<=n;i++)
{
if(out[i]==0&&c[i]>0)
{
printf("%d %d\n",i,c[i]);
}
}
}
else
{
printf("NULL\n");
}
return 0^_^0;
}

最新文章

  1. (转载)linux下各个文件夹的作用
  2. Host文件设置
  3. PHP日期与时间
  4. Web前端学习过程
  5. track by
  6. java @Autowired与@Resource的区别
  7. coreseek实战(一):windows下coreseek的安装与测试
  8. MyEclipse10中导入的jquery文件报错(出现红叉叉,提示语法错误)
  9. Android的一些常用命令提示符(cmd)指令
  10. Hibernate从入门到精通(十)多对多单向关联映射
  11. Huffman Coding 哈夫曼编码
  12. is 和==的区别
  13. thymeltesys-基于Spring Boot Oauth2的扫码登录框架
  14. Restful API学习Day4 - DRF版本控制和认证
  15. .NET获取城市信息(将三字代码转换成城市名)
  16. Python图像识别(聚类)
  17. android dev概念快速入门
  18. Mybatis知识(3)
  19. seleniumIDE的实践
  20. C语言 for循环次数

热门文章

  1. Spring AOP 创建Advice 基于Annotation
  2. C# vb .net实现HSL调整特效滤镜
  3. js编写日历的思路
  4. Java 之 函数式接口
  5. mtd设备操作、jffs2
  6. tkinter 按钮响应函数传值
  7. UGUI image
  8. jenkens 安装是git版本过低 升级
  9. Linux下用的脚本
  10. 快速为不同 Git 平台配置用户