本文主要是介绍洛谷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 <bits/stdc++.h>
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;
}
这篇关于洛谷P4715 淘汰赛的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!