锦标赛题解

锦标赛

http://www.nowcoder.com/questionTerminal/44df4b2a2026442ca761fe21dd6264ed

/先统计出所有参赛者积分中比小美分低的人数count,如果人数count >= n - 1,小美最多能到最后一轮(注意题中给出的初始为第0轮),如果count < n - 1,假定每次比赛小美都和比他积分低的人比,统计小美比赛次数,就是小美最多能到的轮数。/

include

using namespace std;

int power(int x){
int n = 0;
while(x >= 2){
x /= 2;
n++;
}
return n;
}

int main(){
int i, n, count, count_1, count_2, pow, ans;
int sorce[1500000];
ans = 0;
count = 0;
cin >> n;
pow = power(n);
for(i = 0; i < n; i++){
cin >> sorce[i];
if(i >= 1){
if(sorce[i] <= sorce[0]){
count++;
}
}
}
if(n == 1)
ans = 0;
else if(count >= n / 2 - 1){
ans = pow - 1;
}
else{
if(count % 2 == 0){
count_2 = 0;
for(i = count; i >= 2; i /= 2)
count_2++;
ans = count_2;
}
else if(count % 2 == 1){
count_1 = 0;
for(i = count + 1; i >= 2; i /= 2)
count_1++;
ans = count_1;
}
}
cout << ans << endl;
return 0;
}

全部评论
过于冗长,并没有认识到这题的本质
点赞 回复 分享
发布于 2019-12-17 17:36
求指点
点赞 回复 分享
发布于 2019-12-17 18:42

相关推荐

02-08 20:56
已编辑
南京工业大学 Java
在等offer的比尔很洒脱:我也是在实习,项目先不说,感觉有点点小熟悉,但是我有点疑问,这第一个实习,公司真的让实习生去部署搭建和引入mq之类的吗,是不是有点过于信任了,我实习过的两个公司都是人家正式早搭好了,根本摸不到部署搭建的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务