AC了,但有个问题,我最开始的思路是这样的,我们把这2^n个国家分为左右两个部分,亚军一定是左半边最强的国家与右半边最强的国家之间较弱的那个。敲出来后样例也过了,但WA了,求神犇指点QWQ。
#include <bits/stdc++.h>
using namespace std;
const int N = 130;
int a[N];
int main()
{
int n;
cin >> n;
int max_1 = -1;
int max_2 = -1;
int ans = 1;
for(int i = 1 ; i <= n ; ++i) {
ans *= 2;
}
for(int i = 1 ; i <= ans * 0.5; ++i) {
cin >> a[i];
if(a[i] > max_1) max_1 = a[i];
}
for(int i = 0.5 * ans + 1 ; i <= ans ; ++i){
cin >> a[i];
if(a[i] > max_2) max_2 = a[i];
}
cout << min(max_1 , max_2);
return 0;
}
是我思路不对吗?