10分求助!
查看原帖
10分求助!
1048638
LOVE__LMJ楼主2024/6/30 17:42
#include<iostream>
using namespace std;
const int N=1e5+5;
int n,r,q,s[N],w[N],p[N];
void mp(){
  bool flag=true;
  while(flag){
    flag=false;
    for(int i=1;i<2*n;i++){
      if(s[i]>s[i+1]){
        swap(s[i],s[i+1]);
        swap(p[i],p[i+1]);
        flag=true;
      }
      if(s[i]==s[i+1] && p[i]>p[i+1]){
        swap(s[i],s[i+1]);
        swap(p[i],p[i+1]);
      }
    }
  }
  return ;
}
void bs(){
  for(int i=1;i<=n;i++){
    if(w[p[2*i]]>w[p[2*i-1]]){
      s[2*i]++;
    }
    else{
      s[2*i-1]++;
    }
  }
  mp();
  return ;
}
int main(){
  cin>>n>>r>>q;
  for(int i=1;i<=2*n;i++){
    cin>>s[i];
    p[i]=i;
  }
  for(int i=1;i<=2*n;i++){
    cin>>w[i];
  }
  mp();
  for(int i=1;i<=r;i++) bs();
  cout<<p[q];
  return 0;
}
2024/6/30 17:42
加载中...