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

测试了好久都不能发现错误,提交就wrong answer,谁来救救火呀!

Posted by xm1984 at 2006-10-17 18:37:39 on Problem 1007
#include <iostream.h>
#include <string.h>

struct DValue
{
	long measure;
	int seat;
	char *pc;
	struct DValue *next;
};

/* int error()
{
	cout << "Input Error" << endl;
	return 1;
}
*/

struct DValue *creat(int m, int n)
{
	struct DValue *head, *pb, *pf;
	head = NULL;
	int i;
	for(i=0;i<m;i++)
	{
		pb = new struct DValue;
		pb->pc = new char[n+1];
		cin >> pb->pc;
/*		if((int)strlen(pb->pc) > n)
			return NULL;
		for(j=0;j<m;j++)
		{
			switch(pb->pc[j])
			{
			case 'A':
			case 'C':
			case 'G':
			case 'T':
				break;
			default:
				return NULL;
			}
		}
*/

		if(i==0)
			head = pb;
		else
			pf->next = pb;
		pb->next = NULL;
		pf = pb;
	}
	return(head);
}

void getmeasure(struct DValue *head, int n)
{
	int i,j;
	struct DValue *pb = head;
	pb->measure = 0;
	for(i=0;i<n-1;i++)
		for(j=i+1;j<n;j++)
		if(pb->pc[i] > pb->pc[j])
			pb->measure++;
}

void getseat(struct DValue *head, int m)
{
	struct DValue *pb = head;
	int temp,i,j;
	long *pa = new long[m];
	for(i=0;i<m;i++)
	{
		pa[i] = pb->measure;
		pb = pb->next;
	}
	for(i=0;i<m-1;i++)
		for(j=i+1;j<m;j++)
			if(pa[i] > pa[j])
			{
				temp = pa[i];
				pa[i] = pa[j];
				pa[j] = temp;
			}
	pb = head;
	while(pb != NULL)
	{
		for(i=0;i<m;i++)
			if(pb->measure == pa[i])
			{
				pb->seat = i;
				break;
			}
			pb = pb->next;
	}
}


int main()
{
	int m,n,i;
//	cout << "Input:" << endl;
	cin >> n >> m;
/*	if(n <= 0 || m <= 0)
		return(error());
*/
  struct DValue *head,*pb;
	head = creat(m,n);
/*	if(NULL == head)
		return(error());
*/
  pb = head;
	while(pb != NULL)
	{
		getmeasure(pb,n);
		pb = pb->next;
	}
	getseat(head,m);
//	cout << "Ouput:" << endl;
	for(i=0;i<m;i++)
	{
		pb = head;
		while(pb != NULL)
		{
			if(pb->seat == i)
			{
				cout << pb->pc << endl;
				break;
			}
			pb = pb->next;
		}
	}	
	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