44pts 求助
查看原帖
44pts 求助
742628
I_AK_Ynoi楼主2022/7/15 08:43
#include<bits/stdc++.h>
using namespace std;
const int SIZE = 101;
int n, a[SIZE][SIZE], QAQ, Len = 0, b[SIZE];
inline void Swap(int start, int end){
	int __a[SIZE], QWQ = a[start][0];
	for(int i = 1; i <= QWQ; i++){
		__a[i] = a[start][i];
	}
	a[start][0] = a[end][0];
	for(int i = 1; i <= a[end][0]; i++){
		a[start][i] = a[end][i];
	}
	a[end][0] = QWQ;
	for(int i = 1; i <= QWQ; i++){
		a[end][i] = __a[i];
	}
	return;
}
inline void Sort(int l, int r){
    int mid = a[(l+r)/2][0], i = l, j = r;
    do{
        while(a[i][0] < mid){
        	i++;
		}
        while(a[j][0] > mid){
        	j--;	
		}
        if(i <= j){
            Swap(i, j);
            swap(b[i], b[j]);
            i++;
            j--;
        }
    }while(i<=j);
    if(l<j){
    	Sort(l,j);
	}
    if(i<r){
    	Sort(i,r);
	}
}
inline void Input(int i, int j){
	int x;
	cin >> x;
	if(x == 0){
		QAQ = j;
		return;
	}
	a[i][j++] = x;
	Input(i, j);
	return;
}
int main(){
	cin >> n;
	for(int i = 1; i <= n; i++){
		Input(i, 1);
		a[i][0] = QAQ - 1;
		b[i] = i;
	}
	Sort(1, n);
	for(int i = n; i >= 1; i--){
		cout << b[i] << " "; 
	}
	return 0;
}
2022/7/15 08:43
加载中...