简单dfs,40pts求助
查看原帖
简单dfs,40pts求助
1026350
Suboil楼主2023/8/3 20:27
#include <bits/stdc++.h>
using namespace std;

struct TEAM{
    int id;int score;
}t[500];

int n,m;

void dfs(int u,int st) {
    if(u == n - 1) return;

    for(int i = 1,idx = 1;i <= st;i += 2) {
        t[idx++].score = max(t[i].score,t[i + 1].score);  
    }

    dfs(u + 1,st / 2);
}

int main(){
    cin >> n;
    m = pow(2,n);
    for(int i = 1;i <= m;i++) {
        cin >> t[i].score;
        t[i].id = i;
    }


    dfs(0,m);

    if(t[1].score > t[2].score) {
        cout << t[2].id << endl;
    }else {
        cout << t[1].id << endl;
    }

    return 0;
}
2023/8/3 20:27
加载中...