题目描述
有 2n(n≤7)2^n(n\le7)2n(n≤7) 个国家参加世界杯决赛圈且进入淘汰赛环节。我经知道各个国家的能力值,且都不相等。能力值高的国家和能力值低的国家踢比赛时高者获胜。1 号国家和 2 号国家踢一场比赛,胜者晋级。3 号国家和 4 号国家也踢一场,胜者晋级……晋级后的国家用相同的方法继续完成赛程,直到决出冠军。给出各个国家的能力值,请问亚军是哪个国家?
输入输出样例
输入
3
4 2 3 1 10 5 9 7
输出
1
考虑到将队伍逐渐压缩(一半)的方法,较为容易理解,
但算法时间复杂度有待提高( O(n^2) )
代码如下(C++)
在这里插入代码片
#include <iostream>
#include <algorithm>
using namespace std;
typedef struct{
int ability; //球队的能力值
int id; //球队的编号
} team;
int main()
{
team t[150];
int