Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

there are multiple test cases in the input.

Posted by frkstyc at 2006-06-04 15:59:31 on Problem 1273
In Reply To:Can you tell me what is wrong? Posted by:beingryu at 2006-06-04 15:44:17
> I tried all of the datas in USACO training, and passed all of them.
> 
> Nevertheless, I got WA for so many times...
> 
> Here's my code: (search using DFS, because BFS(Dijkstra) is troublesome-)
> 
> #include <stdio.h>
> #include <memory.h>
> #define _min(a,b) (((a)<(b))?(a):(b))
> 
> int from[401];
> __int64 matrix[401][401];
> int N;
> 
> __int64 ans;
> 
> void i_stream()
> {
> 	int edgeN;
> 	scanf("%d %d", &edgeN, &N);
> 	int i;
> 	int st, ed;
> 	int val;
> 	for (i = 0;i < edgeN;i++)
> 	{
> 		scanf("%d %d", &st, &ed);
> 		scanf("%d", &val);
> 		matrix[st - 1][ed - 1] += val;
> 	}
> }
> 
> __int64 fill(int pl, __int64 val)
> {
> 	if (pl == N - 1)
> 	{
> 		return val;
> 	}
> 
> 	int i;
> 	__int64 fval;
> 	for (i = 0;i < N;i++)
> 	{
> 		if (from[i] != -1)
> 			continue;
> 		if (matrix[pl][i] == 0)
> 			continue;
> 		from[i] = pl;
> 		fval = fill(i, _min(val, matrix[pl][i]));
> 		if (fval == 0)
> 			continue;
> 		matrix[i][pl] += fval;
> 		matrix[pl][i] -= fval;
> 		return fval;
> 	}
> 
> 	return 0;
> }
> 
> void process()
> {
> 	__int64 val;
> 	for (;;)
> 	{
> 		memset(from, 0xFF, sizeof(from));
> 
> 		from[0] = -2;
> 
> 		if ((val = fill(0, 0x3FFFFFFF)) == 0)
> 			break;
> 
> 		ans += val;
> 	}
> }
> 
> void o_stream()
> {
> 	printf("%I64d\n", ans);
> }
> 
> int main()
> {
> 	i_stream();
> 	process();
> 	o_stream();
> 
> 	return 0;
> }

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator