PATレベルB1030パーフェクトシーケンス25(ポイント)

トピック

正の整数と正の整数のシーケンスを考えるのPP P、このシーケンスの最大値があること聞かせMM Mと最小値はミリメートルならば、M≤MP M \ルMP M M pは、その後、シーケンスは完璧と呼ばれていますシーケンス。

ここで、与えられたパラメータPP 、p-、およびいくつかの正の整数です。完全な系列を構成する数が多いので、選択してください。

入力フォーマット:

最初の行の入力は、2つの正の整数で与えNN N及びPP PNN N≤0 1 5 \ ^ル。5 10 ≤を1 0 5 )入力の正の整数の数であり、PP P≤0 9 1 \ルは10 ^ 9 1 0 9 )パラメータが与えられます。2行目は、与えNN N数の各越えない正の整数で、10 910 ^ 9 。1 0 9

出力フォーマット:

行出力で選択できる最大数の数値を使用して、完全数シーケンスを形成できます。

入力サンプル:

10 8
2 3 20 4 5 1 6 7 8 9

サンプル出力:

8

コード


#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
    
    
	int N, p,num,min,max,stat,maxx=1,maxxx;
	cin >> N >> p;
	int* a = new int[N];
	for (num = 0; num < N; num++)
		cin >> a[num];
	sort(a,a+N);
	for (stat = 0; stat < N; stat++)
	{
    
    
		min = a[stat];
		if (N - stat > maxx)
		{
    
    
			maxxx = 0;
			for (num = stat+maxx-1; num <N; num++)
			{
    
    
				max = a[num];
				if (float(max) / float(p) <= float(min))
					maxxx = num - stat + 1;
				else
					break;
			}
			if (maxxx > maxx)
				maxx = maxxx;
		}
		else
			break;
	}
	cout << maxx;
	return 0;
}

質問の詳細リンク

おすすめ

転載: blog.csdn.net/qq_41985293/article/details/114983475