P4715 【深基16.例1】淘汰賽 【思維】

ln2037發表於2020-10-02

題目描述

有 2n(n≤7)2^n(n\le7)2n(n≤7) 個國家參加世界盃決賽圈且進入淘汰賽環節。我經知道各個國家的能力值,且都不相等。能力值高的國家和能力值低的國家踢比賽時高者獲勝。1 號國家和 2 號國家踢一場比賽,勝者晉級。3 號國家和 4 號國家也踢一場,勝者晉級……晉級後的國家用相同的方法繼續完成賽程,直到決出冠軍。給出各個國家的能力值,請問亞軍是哪個國家?
輸入格式


輸出格式


輸入輸出樣例
輸入 #1

3
4 2 3 1 10 5 9 7

輸出 #1

1

#include <iostream>
#include <cmath>
using namespace std;

int n;
struct node{
	int id;
	int val;
}a[10][200];

node max(node x, node y) {
	return x.val > y.val ? x : y;
} 

node min(node x, node y) {
	return x.val < y.val ? x : y;
}

int main() {
	cin >> n;
	for(int i = 1; i <= pow(2, n); i++)
		cin >> a[0][i].val, a[0][i].id = i;
	int sum = pow(2, n);
	for(int i = 1; i <= n; i++) {
		int tot = 0;
		for(int j = 1; j <= sum; j += 2) {
			a[i][++tot] = max(a[i - 1][j], a[i - 1][j + 1]);
		}
		sum /= 2;
	}
	cout << min(a[n - 1][1], a[n - 1][2]).id;
	return 0;
}

相關文章