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

WA 求高手帮忙看一看,改一改

Posted by fortunato at 2008-02-20 14:29:41 on Problem 1251
#include<iostream.h>
#include<stdio.h>
void quicksort(char *b,char *e,int *d,int left,int right)
{
	int i=left,j=right;
	int tempp=d[i];
	char tempb=b[i];
	char tempe=e[i];
	while(i<j)
	{
		while(d[i]>tempp && j>i)
			j=j-1;
		if(j>i)
		{
			d[i]=d[j];
			b[i]=b[j];
			e[i]=e[j];
			i=i+1;
		}
		while(d[i]<=tempp && j>i)
			i=i+1;
		if(i<j)
		{
			d[j]=d[i];
			b[j]=b[i];
			e[j]=e[i];
			j=j-1;
		}
	}
	d[i]=tempp;
	b[i]=tempb;
	e[i]=tempe;
	if(left<i-1) quicksort(b,e,d,left,i-1);
	if(i+1<right) quicksort(b,e,d,i+1,right);
}
void main()
{
	int n,m,t,d[730],count,sum;
	char c,s,b[730],e[730];
	while(cin>>n)
	{
		int a[30]={0};
		if(n==0)
			break;
		count=0;
		sum=0;
		for(int j=0;j<n-1;j++)
		{
//			getchar();
			cin>>c>>m;
			for(int i=0;i<m;i++)
			{
				cin>>s>>t;
				b[count]=c;
				e[count]=s;
				d[count]=t;
				count++;
			}
		}
//		for(int k=0;k<count;k++)
//			cout<<b[k]<<" "<<e[k]<<" "<<d[k]<<endl;

		quicksort(b,e,d,0,count-1);

//		for(k=0;k<count;k++)
//			cout<<b[k]<<" "<<e[k]<<" "<<d[k]<<endl;

		for(int i=0;i<count;i++)
		{
			if(a[b[i]-65]==0 || a[e[i]-65]==0)
			{
				sum+=d[i];
				a[b[i]-65]=1;
				a[e[i]-65]=1;
			}
		}
		cout<<sum<<endl;
	}
}

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