版权声明:本文为博主原创文章,未经博主容许不得转载。spa
组委会正在为美团点评CodeM大赛的决赛设计新赛制。
比赛有 n 我的参加(其中 n 为2的幂),每一个参赛者根据资格赛和预赛、复赛的成绩,会有不一样的积分。比赛采起锦标赛赛制,分轮次进行,设某一轮有 m 我的参加,那么参赛者会被分为 m/2 组,每组刚好 2 人,m/2 组的人分别厮杀。咱们假定积分高的人确定获胜,若积分同样,则随机产生获胜者。获胜者得到参加下一轮的资格,输的人被淘汰。重复这个过程,直至决出冠军。
如今请问,参赛者小美最多能够活到第几轮(初始为第0轮)?设计
第一行一个整数 n (1≤n≤ 2^20),表示参加比赛的总人数。
接下来 n 个数字(数字范围:-1000000…1000000),表示每一个参赛者的积分。
小美是第一个参赛者。
小美最多参赛的轮次。
4 4 1 2 3
1 2 4 3 1 2 4
2
#include<stdio.h> #include<math.h> int main() { long int i,n,temp=0; long int a[1000]; scanf("%ld",&n); for(i=0;i<n;i++) { scanf("%ld",&a[i]); if(a[i]<=a[0])temp++; } long int m=log(temp)/log(2);; printf("%ld\n",m); }