讨论区遍历计划——0014(论结构体快排的重要性)

天生我材必有难,千金散尽还债来  •  2个月前


#include<bits/stdc++.h>
struct abcd {
	int shili;
	int bianhao;
	int fenshu;
};
abcd ak[200000];
using namespace std;
bool cmp(abcd aa,abcd bb) {
	if(aa.fenshu!=bb.fenshu) {
		return aa.fenshu>bb.fenshu;
	}
	else{
		return aa.bianhao<bb.bianhao;
	}
}
int main() {
	int n,r,q;
	cin>>n>>r>>q;
	for(int k=0; k<2*n; k++) {
		cin>>ak[k].fenshu;
		ak[k].bianhao=k+1;
	}
	for(int k=0; k<2*n; k++) {
		cin>>ak[k].shili;
	}
	sort(ak+0,ak+2*n, cmp);
	//cout<<ak[11].shili;
	for(int l=0; l<r; l++) {
		for(int k=0; k<2*n; k++) {
			if(ak[k].shili>ak[k+1].shili) {
				ak[k].fenshu++;
			} else {
				ak[k+1].fenshu++;
			}
			//cout<<k<<" "<<ak[k].fenshu<<" "<<k+1<<" "<<ak[k+1].fenshu<<endl;
			k++;
		}
		sort(ak+0,ak+2*n, cmp);
		/*for(int j=0;j<2*n;j++){
			cout<<ak[j].bianhao<<" "<<ak[j].fenshu<<" "<<ak[j].shili<<endl;
		}*/
		//cout<<endl;
	}
	cout<<ak[q-1].bianhao;
	return 0;
}

评论:

请先登录,才能进行评论