📄 h.c
字号:
#include <stdio.h>
int list[1048577];
int max[524289];
int min[524289];
int main()
{
int n,m,k;
int i,listcount,playercount;
int casenum=1;
scanf("%d",&n);
while(n)
{
playercount=1<<n; //2^n
listcount=1<<(n+1); //2^(n+1)
scanf("%d",&list[1]);
max[list[1]]=1; //根排第一
for(i=2;i<listcount;i++)
{
scanf("%d",&list[i]);
if(list[i]!=list[i/2]) max[list[i]]=max[list[i/2]]+1;
}
for(i=1;i<=playercount;i++) min[i]=1;
for(i=listcount-1;i>1;i--)
{
if(list[i]!=list[i/2]) min[list[i/2]]+=min[list[i]];
}
scanf("%d",&m);
printf("Case:%d\n",casenum++);
for(i=0;i<m;i++)
{
scanf("%d",&k);
printf("Player %d can be ranked as high as %d or as low as %d.\n",k,max[k],playercount-min[k]+1);
}
scanf("%d",&n);
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -