求佬帮我看看,40分
查看原帖
求佬帮我看看,40分
1407917
yuxuan620楼主2024/12/13 17:40
#include<bits/stdc++.h>
using namespace std;
struct nood {
	int f,num;
} s[200005];
int sl[200005];
bool cmp(nood a,nood b) {
	if(a.f==b.f)return a.num<b.num;
	return a.f>b.f;
}
int n,r,c;
nood w[200005],l[200005];
void dg() {
	int i=1,j=1,q=1;
	while(i<=n/2&&j<=n/2) {
		if(w[i].f>l[j].f||(w[i].f==l[j].f&&w[i].num<l[j].num)) {
			s[q].f=w[i].f;
			s[q].num=w[i].num;
			i++;
			q++;
		} else {
			s[q].f=l[j].f;
			s[q].num=l[j].num;
			j++;
			q++;
		}
	}
	if(i<=n/2) {
		s[q].f=w[i].f;
		s[q].num=w[i].num;
		i++;
		q++;
	}
	if(j<=n/2) {
		s[q].f=l[j].f;
		s[q].num=l[j].num;
		j++;
		q++;
	}
}

int main() {
	cin>>n>>r>>c;
	n*=2;
	for(int i=1; i<=n; i++) {
		cin>>s[i].f;
	}
	for(int i=1; i<=n; i++) {
		cin>>sl[i];
		s[i].num =i;
	}
	sort(s+1,s+n+1,cmp);
	for(int i=1; i<=r; i++) {
		int q=1;
		for(int j=1; j<=n; j+=2) {
			if(sl[s[j].num]>sl[s[j+1].num]) {
				s[j].f++;
				w[q].f=s[j].f;
				l[q].f=s[j+1].f;
				w[q].num=s[j].num;
				l[q].num=s[j+1].num;
				q++;
			} else {
				s[j+1].f++;
				l[q].f=s[j].f;
				w[q].f=s[j+1].f;
				l[q].num=s[j].num;
				w[q].num=s[j+1].num;
				q++;
			}
		}
		dg();
	}
	cout<<s[c].num;
}
2024/12/13 17:40
加载中...