求助大佬,看不出错误,思路是快排
查看原帖
求助大佬,看不出错误,思路是快排
246331
mystic_qwq楼主2023/4/6 15:55
#include<iostream>
#include<ctime>
#include<cstdlib>
using namespace std;
int t1,t2,t3;
struct Node{
	int x,y,z;
	bool operator>(const Node&A)const{
		if(x!=A.x)return x>A.x;
		if(y!=A.y)return y>A.y;
		return z<A.z;
	}
}a[300+1];
int N;
void quicksort(int l,int r){
	if(l>=r)return;
	int i=l,j=r;swap(a[l],a[l+rand()%(r-l+1)]);Node x=a[l];
	while(i<j){
		while(i<j&&a[j]>x)j--;
		if(i<j)a[i++]=a[j];
		while(i<j&&x>a[i])i++;
		if(i<j)a[j--]=a[i];
	}
	a[i]=x;
	quicksort(l,i-1);
	quicksort(i+1,r);
}
int main(){
	srand(time(NULL));
	cin>>N;
	for(int i=1;i<=N;i++){
		cin>>t1>>t2>>t3;
		a[i].x=t1+t2+t3,a[i].y=t1,a[i].z=i;
	}
	quicksort(1,N);
	for(int i=1;i<=5;i++){
		cout<<a[i].z<<' '<<a[i].x<<endl;
	}
	return 0;
}
2023/4/6 15:55
加载中...