蒟蒻求助,前面三个点没过
查看原帖
蒟蒻求助,前面三个点没过
504237
lk323232楼主2022/7/12 15:33

写了奇怪的代码,但是我自己找不到问题

#include<bits/stdc++.h>
using namespace std;
int n,a[200],vis[200],deep,ll[200];
stack<int>qx,qy;
int main(){
	cin>>n;
	deep=pow(2,n);
	for(int i=1;i<=pow(2,n);++i) cin>>a[i];
	while(deep!=2){
		int num=1;
		for(int i=1;i<=pow(2,n);++i){
			if(!vis[i]){
				if(qx.empty()) {
					qx.push(a[i]),qy.push(i);continue;
				}
				int x=qx.top(),y=qy.top();
				if(a[i]>x) ll[num++]=i,vis[y]=1;
				else ll[num++]=y,vis[i]=1;
				qx.pop();qy.pop();
			}	
		}
		deep>>=1;
	}
	cout<<min(ll[1],ll[2]);
	return 0;
}
2022/7/12 15:33
加载中...