cf B. I.O.U.

http://codeforces.com/contest/376/problem/B

 1 #include <cstdio>

 2 #include <cstring>

 3 #include <algorithm>

 4 #define maxn 10001

 5 using namespace std;

 6 

 7 int n,m;

 8 int g[110][110];

 9 

10 int main()

11 {

12     while(scanf("%d%d",&n,&m)!=EOF)

13     {

14         memset(g,0,sizeof(g));

15         for(int i=0; i<m; i++)

16         {

17             int a,b,c;

18             scanf("%d%d%d",&a,&b,&c);

19             g[a][b]=c;

20         }

21         for(int i=1; i<=n; i++)

22         {

23             for(int j=1; j<=n; j++)

24             {

25                 for(int k=1; k<=n; k++)

26                 {

27                     if(g[i][j]>0&&g[j][k]>0)

28                     {

29                         int c=min(g[i][j],g[j][k]);

30                         g[i][j]-=c;

31                         g[j][k]-=c;

32                         if(i!=k)

33                         g[i][k]+=c;

34                     }

35                 }

36             }

37         }

38         int ans=0;

39         for(int i=1; i<=n; i++)

40         {

41             for(int j=1; j<=n; j++)

42             {

43                 ans+=g[i][j];

44             }

45         }

46         printf("%d\n",ans);

47     }

48     return 0;

49 }
View Code

 

你可能感兴趣的:(c)