Skip to content Skip to footer

洛谷P4715 淘汰赛

洛谷P4715 淘汰赛

【深基16.例1】淘汰赛

文章目录

【深基16.例1】淘汰赛题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1

正确的代码

题目描述

2

n

2^n

2n(

n

7

n\le7

n≤7)个国家参加世界杯决赛圈且进入淘汰赛环节。已经知道各个国家的能力值,且都不相等。能力值高的国家和能力值低的国家踢比赛时高者获胜。1 号国家和 2 号国家踢一场比赛,胜者晋级。3 号国家和 4 号国家也踢一场,胜者晋级……晋级后的国家用相同的方法继续完成赛程,直到决出冠军。给出各个国家的能力值,请问亚军是哪个国家?

输入格式

第一行一个整数

n

n

n,表示一共

2

n

2^n

2n 个国家参赛。

第二行

2

n

2^n

2n 个整数,第

i

i

i 个整数表示编号为

i

i

i 的国家的能力值(

1

i

2

n

1\leq i \leq 2^n

1≤i≤2n)。

数据保证不存在平局。

输出格式

仅一个整数,表示亚军国家的编号。

样例 #1

样例输入 #1

3

4 2 3 1 10 5 9 7

样例输出 #1

1

正确的代码

//

// Created by 枫飘长安 on 2024/4/14.

//

#include

using namespace std;

/**

*author: 枫飘长安

*date: 2024/4/14

*fileName: P4715.cpp

*description: TODO

**/

typedef long long ll;

const int MAXN = 1e6+10;

int n;

struct node {

int val;

int id;

}a[MAXN];

bool cmp (node a, node b) {

return a.val > b.val;

}

int main (){

cin >> n;

n = pow(2,n);

for (int i = 1; i <= n; i++) {

cin >> a[i].val;

a[i].id = i;

}

sort(a+1,a+1+n/2,cmp);

sort(a+1+n/2,a+n+1,cmp);

if (a[1].val > a[n/2+1].val) {

cout << a[n/2+1].id;

} else {

cout << a[1].id;

}

return 0;

}

Copyright © 2088 世界杯德国巴西_世界杯为什么四年一次 - lynzzx.com All Rights Reserved.
友情链接