tema
Dada una secuencia de números enteros positivos y números enteros positivos pp p , deje que el valor máximo en esta secuencia sea MM M y el valor mínimo sea mm m , si M ≤ mp M \ le mp M ≤ m p , entonces la secuencia se llama perfecta secuencia.
Ahora, los parámetros dados PP el p- y algunos de los números enteros positivos, elija ya que muchos números constituyen una serie perfecta.
Formato de entrada:
De entrada de la primera línea da dos enteros positivos NN N y PP P , donde NN N ( ≤ 0. 1. 5 \ ^ Le. 5 10 ≤ . 1 0 ? . 5 ? ? ) Es el número de entero positivo de entrada, PP P ( ≤ 0 9 1 \ Le 10 ^ 9 ≤ 1 0 ? 9 ? ? ) se da parámetros. La segunda línea da NN N enteros positivos, cada uno del número no exceda de 10 910 ^ 9 . 1 0 ? 9 ? ? .
Formato de salida:
El número máximo de números que se pueden seleccionar en una salida de línea se puede utilizar para formar una secuencia numérica perfecta.
Muestra de entrada:
10 8
2 3 20 4 5 1 6 7 8 9
Salida de muestra:
8
Código
#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;
}