版權聲明:本文爲博主原創文章,未經博主容許不得轉載。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); }