70分wa求调
查看原帖
70分wa求调
1808854
whats_my_name楼主2025/8/1 15:21
#include<bits/stdc++.h>
using namespace std;
struct pl{
	int hao;
	int sl;
	int fs;
};
int n,rr,q;
pl winn[123456];
pl lost[123456];
pl arr[123456];
bool cmp(pl fx,pl fy){
	if(fx.fs==fy.fs){
		return fx.hao<fy.hao;
	}else{
		return fx.fs>fy.fs;
	}
}
int main(){
	ios::sync_with_stdio(0);
	cin.tie(0);cout.tie(0);
	cin>>n>>rr>>q;
	for(int i=1;i<=2*n;i++){
		cin>>arr[i].fs;
		arr[i].hao=i;
	}
	for(int i=1;i<=2*n;i++){
		cin>>arr[i].sl;
	}
	sort(arr+1,arr+1+2*n,cmp);
	for(int i=1;i<=rr;i++){
		for(int i=1;i<=n;i++){
			if(arr[i*2].sl>arr[i*2-1].sl){
				arr[i*2].fs++;
				winn[i]=arr[i*2];
				lost[i]=arr[i*2-1];
			}else{
				arr[i*2-1].fs++;
				winn[i]=arr[i*2-1];
				lost[i]=arr[i*2];
			}
		}
		int lw=1,ll=1,la=1;
			while(lw<=n&&ll<=n){
				if(cmp(winn[lw],lost[ll])){
					arr[la]=winn[lw];
					la++;
					lw++;
				}else{
					arr[la]=lost[ll];
					la++;
					ll++;	
				}
			}
			if(lw<=n&&ll==n+1){
				while(la<=2*n){
					arr[la]=winn[lw];
					la++;
					lw++;	
				}
			}
			if(ll<=n&&lw==n+1){
				while(la<=2*n){
					arr[la]=lost[ll];
					la++;
					ll++;	
				}
			}
	}
	cout<<arr[q].hao;
}

救救孩子吧,70分卡老久了

2025/8/1 15:21
加载中...