社区讨论
#4WA , 80tps
P4715【深基16.例1】淘汰赛参与者 3已保存回复 4
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 4 条
- 当前快照
- 1 份
- 快照标识符
- @mhj0l6hv
- 此快照首次捕获于
- 2025/11/03 18:45 4 个月前
- 此快照最后确认于
- 2025/11/03 18:45 4 个月前
代码:
CPP#include<bits/stdc++.h>
using namespace std;
int bj,vs;
struct bb
{
int bh,sl;
}ss[150];
int main()
{
int n,sss=1;
cin>>n;
for(int i=1;i<=n;i++)
sss*=2;
for(int i=1;i<=sss;i++)
{
ss[i].bh=i;
cin>>ss[i].sl;
}
for(int i=1;i<=n-1;i++)/*求到只剩冠亚军*/
{
for(int j=1;j<=sss;j++)
{
if(ss[j].bh==0 && ss[j].sl==0)/*判断是否淘汰*/
continue;
for(int jj=j+1;jj<=sss;jj++)/*寻找下一个没被淘汰的人*/
{
if(ss[jj].bh!=0)
{
vs=ss[jj].sl,bj=jj;
break;
}
}
if(ss[j].sl>vs)/*淘汰*/
ss[bj].bh=ss[bj].sl=0;
else
{
ss[j].bh=ss[j].sl=0;
j=bj+1;
}
}
}
int hh1,pp1,hh2,pp2;/*以下均为判断及输出*/
bool cc=1;
for(int i=1;i<=sss;i++)
{
if(ss[i].bh==0 && ss[i].sl==0)
continue;
if(cc)
{
hh1=ss[i].bh;
pp1=ss[i].sl;
cc=0;
}
else
{
hh2=ss[i].bh;
pp2=ss[i].sl;
break;
}
}
if(pp2>pp1)
cout<<hh1;
else
cout<<hh2;
return 0;
}
回复
共 4 条回复,欢迎继续交流。
正在加载回复...