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

用链表解决的,汗,16MS 1090B的代码,好像太复杂了点,欢迎大牛改进

Posted by 15700764631 at 2016-01-14 10:18:51 on Problem 1007
#include<stdio.h>
#include<stdlib.h>
typedef struct LNode{
	char data[500];
	int count,flag;//关键字和开关
	struct LNode *next;
}LNode,*LinkList;

int Sort(char ch[],int m)//求逆序数
{
	int i,j,count=0;
	for(i=0;i<m;i++)
	{
		for(j=i+1;j<m;j++)
		{
			if(ch[i]>ch[j])count++;
		}
	}
	return count;
}

void bubble(int a[],int n)//对数组冒泡排序
{
	int i,j;
	for(i=n-1;i>0;i--)
	{
		for(j=0;j<i;j++)
		{
			if(a[j]>a[j+1])
			{
				int temp=a[j];
				a[j]=a[j+1];
				a[j+1]=temp;
			}
		}
	}
}
int main()
{
	int m,n,cou[10000];
	LNode *p,*p1;
	LinkList head;
	int i,j;
	head=(LinkList)malloc(sizeof(LNode));
	p1=(LNode *)malloc(sizeof(LNode));
	p=head;
	while(scanf("%d%d",&m,&n)!=EOF)
	{
		getchar();
		for(j=0;j<n;j++)
		{
			gets(p1->data);
			cou[j]=Sort(p1->data,m);
			p1->flag=0;
			p1->count=cou[j];
			p->next=p1;
			p=p1;
			p1=(LNode *)malloc(sizeof(LNode));
		}
		bubble(cou,n);
		p->next=NULL;
		for(i=0;i<n;i++)
		{	
			p=head->next;
			while(p)
			{
				if(p->count==cou[i]&&p->flag==0)
				{
					printf("%s\n",p->data);
					p->flag=1;
					break;
				}
				p=p->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