题解 | NC13223
锦标赛
https://ac.nowcoder.com/acm/problem/13223
可以用模拟的思路来处理这个问题。 Tip:当lar为奇数时,显然seq中要出一个数与其配对,配对结果是lar保留,seq被减一。
#include<iostream>
#include<algorithm>
using namespace std;
int main(){
#ifdef LOCAL
freopen("in.txt","r",stdin);
freopen("out.txt","w",stdout);
#endif
int n;
cin>>n;
int seq=0;
int tem;
int me;
cin>>me;
for(int i=1;i<n;++i){
cin>>tem;
if(me>=tem){
++seq;
}
}
int ans=0;
int lar=n-1-seq;
while(seq>0){
if(lar&1){
if(seq==1){
break;
}
++lar;//special,
--seq;
}
lar>>=1;
--seq;
seq>>=1;
++ans;
}
cout<<ans;
}