全RE
查看原帖
全RE
1143775
__yiLIUyi__楼主2024/7/26 16:25

我的思路:每次比较将s数组数量减半,只保留赢家,再用l 保留输家,不断更新,最后一次就是亚军

#include<bits/stdc++.h>
using namespace std;
int u,n=1,l;
int s[500],a[500];
int main(){
	cin>>u;
	for(int i=0;i<u;i++)n*=2;
	for(int i=1;i<=n;i++){
		cin>>s[i];
		a[s[i]]=i;
	}
	for(;n>=2;n/=2){
		for(int j=1;j<=n;j+=2){
			l=min(s[j],s[j+1]);
		    s[j/2+1]=max(s[j],s[j+1]);
	    }
    }
	cout<<a[l];
	return 0;
}
2024/7/26 16:25
加载中...