求助大佬,本地正确提交0分,
查看原帖
求助大佬,本地正确提交0分,
246331
mystic_qwq楼主2023/4/6 18:58

下了一个样例,本地正确

#include<iostream>
using namespace std;
int n,q[21];
struct Node{
	int a[11]={0},s;
	bool operator<(const Node&A)const{
		for(int i=1;i<=min(q[s],q[A.s]);i++)if(a[i]!=A.a[i])return a[i]<A.a[i];
		if(q[s]!=q[A.s]){
			for(int i=min(q[s],q[A.s])+1;i<=max(q[s],q[A.s]);i++){
				if(a[1]==max(a[i],A.a[i]))continue;
				return (q[s]<q[A.s]&&a[1]<A.a[i])||(q[s]>q[A.s]&&a[1]>a[i]);
			}
		}
		return false;
	}
}a[21];

void quicksort(int l,int r){
	if(l>=r)return;
	Node x=a[l];int i=l,j=r;
	while(i<j){
		while(i<j&&x<a[j])j--;
		if(i<j)a[i++]=a[j];
		while(i<j&&a[i]<x)i++;
		if(i<j)a[j--]=a[i];
	}
	a[i]=x;
	quicksort(l,i-1);quicksort(i+1,r);
}
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		a[i].s=i;
		int l=0;
		char c=getchar();
		if(c>'9'||c<'0')c=getchar();
		while(c>='0'&&c<='9'){
			a[i].a[++l]=c-'0';
			c=getchar();
		}
		q[i]=l;
	}
	quicksort(1,n);
	for(int i=n;i;--i)
		for(int j=1;j<=q[a[i].s];++j)cout<<a[i].a[j];
	cout<<endl;
	return 0;
}
2023/4/6 18:58
加载中...