洛谷 P4715 淘汰赛 / 思维题 / 连续两个比较找亚军
洛谷 P4715 淘汰赛
原来可以这么判断,我思维太死了,不敢想已学套路之外的做法.
思路:冠军和亚军一定是左边最强的和右边最强的这两个国家
#include <iostream>
#include <algorithm>
using namespace std;
struct node
{
int energy;
int id;
}a[1 << 10];
int n;
bool operator< (node a, node b)
{
return a.energy < b.energy;
}
int main()
{
cin >> n;
for (int i = 0; i < (1 << n); i++ )
{
cin >> a[i].energy;
a[i].id = i;
}
n = 1 << n;
sort(a, a + n / 2), sort(a + n / 2 + 1, a + n);
if (a[n / 2 - 1].energy < a[n - 1].energy) cout << a[n / 2 - 1].id + 1;
else cout << a[n - 1].id + 1;
return 0;
}

浙公网安备 33010602011771号