PAT-B 1060 愛丁頓數【排序】

Enjoy_process發表於2019-02-25

                                                   PAT-B 1060 愛丁頓數

                         https://pintia.cn/problem-sets/994805260223102976/problems/994805269312159744

 

 

 

題目

英國天文學家愛丁頓很喜歡騎車。據說他為了炫耀自己的騎車功力,還定義了一個“愛丁頓數” E ,即滿足有 E 天騎車超過 E英里的最大整數 E。據說愛丁頓自己的 E 等於87。現給定某人 N 天的騎車距離,請你算出對應的愛丁頓數 E(≤N)。

輸入

輸入第一行給出一個正整數 N (≤10​5​​),即連續騎車的天數;第二行給出 N 個非負整數,代表每天的騎車距離。

輸出

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

樣例輸入

10
6 7 6 9 3 10 8 2 7 8

樣例輸出

6

分析

排序。但是要注意兩個問題,1、當騎行距離都是0時,輸出0。2、“滿足有 E 天騎車超過 E英里”,這裡“有E天”指的是至少有E天。

C++程式

#include<iostream>
#include<algorithm> 

using namespace std;

const int N=100005;

int a[N];

int main()
{
	int n;
	scanf("%d",&n);
	for(int i=0;i<n;i++)
	  scanf("%d",&a[i]);
	sort(a,a+n);//排序 
	int ans=0;
	for(int i=n;i>=0;i--)
	{
		if(a[n-i]>i)//至少有i天的騎車距離大於i 
		{
			ans=i;
			break;
		}
	}
	printf("%d\n",ans);
	return 0;
}

 

相關文章