求助
  • 板块灌水区
  • 楼主DHeasy
  • 当前回复0
  • 已保存回复0
  • 发布时间2023/1/3 19:20
  • 上次更新2023/10/24 05:40:31
查看原帖
求助
528325
DHeasy楼主2023/1/3 19:20

rt,下面的代码为什么CE了?报告错误为返回值为 11,有没有大佬解答一下?

#include<bits/stdc++.h>
using namespace std;
int h,n;
struct P{
	int m,k;
}p[1<<(18+10)];
bool cmp(P _a,P _b){
	return _a.k>_b.k; 
}
int main(){
//	srand((unsigned)time(0));
	scanf("%d",&h);
	n=1<<(h-1);
	for(int i=1;i<=n;i++) p[i].m=i;
	for(int i=1;i<=420;i++){
		int a=0,b=0,c=0;
		while(a==b||b==c||c==a){
//			a=(rand()<<16|rand())%n+1;
//			b=(rand()<<16|rand())%n+1;
//			c=(rand()<<16|rand())%n+1;
		}
		printf("? %d %d %d\n",a,b,c);
//		fflush(stdout);
		int x;
		scanf("%d",&x);
		p[x].k++;
	}
	sort(p+1,p+n+1,cmp);
	for(int i=1;i<=n;i++){
		if(i==p[1].k||i==p[2].k) continue;
		printf("? %d %d %d\n",p[1].k,p[2].k,i);
//		fflush(stdout);
		int x;
		scanf("%d",&x);
		if(x==i){
			printf("! %d",i);
//			fflush(stdout);
			return 0;
		}
	}
	return 0;
}
2023/1/3 19:20
加载中...