PAT-A-1085. Perfect Sequence (25)

来源:互联网 发布:淘宝网卖精密管违法吗 编辑:程序博客网 时间:2024/05/29 14:53

1085. Perfect Sequence (25)

时间限制
300 ms
内存限制
65536 kB
代码长度限制
16000 B
判题程序
Standard
作者
CAO, Peng

Given a sequence of positive integers and another positive integer p. The sequence is said to be a "perfect sequence" if M <= m * p where M and m are the maximum and minimum numbers in the sequence, respectively.

Now given a sequence and a parameter p, you are supposed to find from the sequence as many numbers as possible to form a perfect subsequence.

Input Specification:

Each input file contains one test case. For each case, the first line contains two positive integers N and p, where N (<= 105) is the number of integers in the sequence, and p (<= 109) is the parameter. In the second line there are N positive integers, each is no greater than 109.

Output Specification:

For each test case, print in one line the maximum number of integers that can be chosen to form a perfect subsequence.

Sample Input:
10 82 3 20 4 5 1 6 7 8 9
Sample Output:
8
#include<iostream>#include<cstdio>#include<algorithm>using namespace std;int a[100010];int main(){  int n, p;  cin >> n >> p;  for (int i = 0; i < n; i++)    cin >> a[i];  sort(a, a + n);  int ans = 1;  for (int i = 0; i < n; i++)  {    int j = upper_bound(a + i, a + n, (long long)a[i] * p) - a;    ans = max(ans, j - i);  }  cout << ans << endl;  system("pause");  return 0;}

0 0
原创粉丝点击