h.c
来自「The 5th Annual Shantou Univ.Collegiage P」· C语言 代码 · 共 40 行
C
40 行
#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 + =
减小字号Ctrl + -
显示快捷键?