求调——样例超时
查看原帖
求调——样例超时
754022
qleizhengye2022楼主2024/7/30 19:53
#include<bits/stdc++.h>
#define ll long long
using namespace std;
struct stu{
	int c,m,e;
	int sum,t;
	int pm;
}a[105]; 
int n;//语文和数学的总分,语文和数学的最高分
/*
6
 c   m   e   sum  c+m max(c,m) 
140 140 150  430  280 140
140 149 140  429  289 149
148 141 140  429  289 148
141 148 140  429  289 148
145 145 139  429  290 145
0   0   0
*/
void pd(int x,int w)
{
	if(a[w-1].sum<a[w].sum) 
	{
		a[w].pm=a[w-1].pm;
		a[w-1].pm=x;
	}
	else if(a[w-1].c+a[w-1].m<a[w].c+a[w].m)
	{
		a[w].pm=a[w-1].pm;
		a[w-1].pm=x;
	}
	else if(max(a[w-1].c,a[w-1].m)<max(a[w].c,a[w].m))
	{
		a[w].pm=a[w-1].pm;
		a[w-1].pm=x;
	}
	else if(a[w-1].sum>a[w].sum) a[w].pm=x;
	else if(a[w-1].c+a[w-1].m>a[w].c+a[w].m) a[w].pm=x;
	else if(max(a[w-1].c,a[w-1].m)>max(a[w].c,a[w].m)) a[w].pm=x;
	else a[w].pm=a[w-1].pm;
	pd(x+1,w+1);
}
int main()
{
	cin>>n;
	a[0].pm=1;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i].c>>a[i].m>>a[i].e;
		a[i].sum=a[i].c+a[i].m+a[i].e;
		a[i].t=i; 
	}
	pd(1,1);//排名 第几个人
	for(int i=1;i<=n;i++)
		cout<<a[i].pm<<endl;
    return 0;
}
2024/7/30 19:53
加载中...