2.3.5(extra)

来源:互联网 发布:高考网络培训班 编辑:程序博客网 时间:2024/05/04 02:12
/*ID:18861501LANG:C++TASK:concom*//*------------------Header Files------------------*/#include <iostream>#include <cstring>#include <string>#include <cstdio>#include <algorithm>#include <cstdlib>#include <ctype.h>#include <cmath>#include <stack>#include <queue>#include <map>#include <vector>#include <limits.h>using namespace std;/*------------------Definitions-------------------*/#define LL long long#define PI acos(-1.0)#define INF 0x3F3F3F3F#define MOD 9901/*---------------------Work-----------------------*/int N;int mp[105][105];bool con[105][105];void work(){memset(mp,0,sizeof(mp));memset(con,0,sizeof(con));scanf("%d",&N);int a,b,c;for(int i=1;i<=N;i++){scanf("%d%d%d",&a,&b,&c);mp[a][b]=c;if(c>50) con[a][b]=true;}for(int i=1;i<=100;i++){con[i][i]=true;  //注意自己和自己也要标记,因为所有股份值相加的时候还要带上自己的对于那个公司的股份bool flag=true;while(flag){flag=false;for(int j=1;j<=100;j++){if(!con[i][j]){int sum=0;for(int k=1;k<=100;k++){if(con[i][k]) sum+=mp[k][j];}if(sum>50){flag=true;  //有新公司可管理con[i][j]=true;}}}}}for(int i=1;i<=100;i++)for(int j=1;j<=100;j++)if(con[i][j]&&i!=j)printf("%d %d\n",i,j);}/*------------------Main Function------------------*/int main(){//freopen("test.txt","r",stdin);freopen("concom.out","w",stdout);freopen("concom.in","r",stdin);work();return 0;}

0 0