1060 愛丁頓數 25 分 (超時解決辦法)

2021-10-22 10:04:01 字數 1024 閱讀 9941

英國天文學家愛丁頓很喜歡騎車。據說他為了炫耀自己的騎車功力,還定義了乙個「愛丁頓數」 e ,即滿足有 e 天騎車超過 e 英里的最大整數 e。據說愛丁頓自己的 e 等於87。

現給定某人 n 天的騎車距離,請你算出對應的愛丁頓數 e(≤n)。

輸入格式:

輸入第一行給出乙個正整數 n (≤10

​5​​ ),即連續騎車的天數;第二行給出 n 個非負整數,代表每天的騎車距離。

輸出格式:

在一行中給出 n 天的愛丁頓數。

輸入樣例:

106 7 6 9 3 10 8 2 7 8

輸出樣例:

6**如下

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

using

namespace std;

const

int max_n =

100004

;bool

cmp(

int a,

int b)

intmain()

;int e =0;

for(

int i =

0; i < n; i++

)sort

(du,du+n,cmp)

;while

(du[e]

>e+

1&&e<=n)

printf

("%d"

,e);

return0;

}

自己一開始用的暴力解,因此有很多測試點超時。後面網上看到一種特別好的思路,於是記錄一下。

如果下一天還是比e+1大的話,(因為加多一天e就要加一)那就證明e和e+1都是滿足題意的,但要求乙個最大整數,所以取e+1。迴圈下去便得出最終解。

1060 愛丁頓數(25 分)

英國天文學家愛丁頓很喜歡騎車。據說他為了炫耀自己的騎車功力,還定義了乙個 愛丁頓數 e 即滿足有 e 天騎車超過 e 英里的最大整數 e。據說愛丁頓自己的 e 等於87。現給定某人 n 天的騎車距離,請你算出對應的愛丁頓數 e n 輸入第一行給出乙個正整數 n 10 5 即連續騎車的天數 第二行給出...

1060 愛丁頓數 (25 分)

1060 愛丁頓數 25 分 英國天文學家愛丁頓很喜歡騎車。據說他為了炫耀自己的騎車功力,還定義了乙個 愛丁頓數 e 即滿足有 e 天騎車超過 e 英里的最大整數 e。據說愛丁頓自己的 e 等於87。現給定某人 n 天的騎車距離,請你算出對應的愛丁頓數 e n 輸入第一行給出乙個正整數 n 10 5...

1060 愛丁頓數 25 分

英國天文學家愛丁頓很喜歡騎車。據說他為了炫耀自己的騎車功力,還定義了乙個 愛丁頓數 e 即滿足有 e 天騎車超過 e 英里的最大整數 e。據說愛丁頓自己的 e等於87。現給定某人 n 天的騎車距離,請你算出對應的愛丁頓數 e n 輸入第一行給出乙個正整數 n 10 5 即連續騎車的天數 第二行給出 ...