记录编号 30619 评测结果 AAAAAAAAAA
题目名称 [NOIP 2007]奖学金 最终得分 100
用户昵称 GravatarTruth.Cirno 是否通过 通过
代码语言 C++ 运行时间 0.004 s
提交时间 2011-10-30 18:16:05 内存使用 0.26 MiB
显示代码纯文本
#include <cstdio>
#include <cstdlib>
using namespace std;

int a[300],b[300],c[300];/* Array a[] saves total score , array b[] saves Chinese score , array c[] saves student number . */

void swap(int& a,int& b)
{
	int temp;
	temp=a;
	a=b;
	b=temp;
}

void qqsort(int l,int r)
{
	int ll,rr,temp,temp1,temp2,temp3;
	ll=l;
	rr=r;
	temp=( rand()%(r-l+1) )+l;
	temp1=a[temp];
	temp2=b[temp];
	temp3=c[temp];
	while (ll<=rr)
	{
		while ( (a[ll]>temp1) || (a[ll]==temp1&&b[ll]>temp2) || (a[ll]==temp1&&b[ll]==temp2&&c[ll]<temp3) )
			ll++;
		while ( (temp1>a[rr]) || (temp1==a[rr]&&temp2>b[rr]) || (temp1==a[rr]&&temp2==b[rr]&&temp3<c[rr]) )
			rr--;
		if (ll<=rr)
		{
			swap(a[ll],a[rr]);
			swap(b[ll],b[rr]);
			swap(c[ll],c[rr]);
			ll++;
			rr--;
		}
	}
	if (l<rr)
		qqsort(l,rr);
	if (ll<r)
		qqsort(ll,r);
}

int main(void)
{
	freopen("pj07-1.in","r",stdin);
	freopen("pj07-1.out","w",stdout);
	int i,n;
	scanf("%d\n",&n);
	for (i=0;i<n;i++)
	{
		scanf("%d %d %d\n",&b[i],&a[i],&c[i]);
		a[i]=a[i]+b[i]+c[i];
		c[i]=i+1;
	}
	qqsort(0,n-1);
	for (i=0;i<5;i++)
		printf("%d %d\n",c[i],a[i]);
	fclose(stdin);
	fclose(stdout);
	return(0);
}