题目描述
星空时代人类发明了很多太空母舰用来开拓家园,现有2n(n≤10)艘太空母舰进行战斗力大小比较,角逐出谁是最强太空母舰。比赛规则如下:1 号太空母舰和 2 号太空母舰比赛,胜者晋级。3 号太空母舰和 4 号太空母舰也比一场,胜者晋级……晋级后的太空母舰用相同的方法继续完成赛程,直到决出冠军。给出各个太空母舰的战斗力,请问亚军是哪个太空母舰?
输入
第一行一个整数n,表示一共 2n 个太空母舰参赛。
第二行 2n 个整数,第 i 个整数表示编号为 i 的太空母舰的战斗力(1≤i≤2n)。
数据保证不存在平局。
输出
仅一个整数,表示亚军太空母舰的编号。
样例输入
3 4 2 3 1 10 5 9 7
样例输出
1
Code:
#include<bits/stdc++.h>
using namespace std;
vector<pair<int,int> >a;
int main(){int n,t;cin>>n;int nn=pow(2,n);for(int i=1;i<=nn;i++){cin>>t;a.push_back(make_pair(t,i));}for(int i=n-1;i>=1;i--){for(int j=0;j<pow(2,i);j++){if(a[j].first>a[j+1].first){a.erase(a.begin()+j+1); }else{a.erase(a.begin()+j);}}}if(a[0].first>a[1].first){cout<<a[1].second<<endl;}else{cout<<a[0].second<<endl;}return 0;
}