1085. Perfect Sequence

来源:互联网 发布:淘宝乐高回力车 编辑:程序博客网 时间:2024/06/05 03:07

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<stdio.h>#include<iostream>#include<string>#include<vector>#include<algorithm>using namespace std;long long input[100002];int main(){freopen("F://Temp/input.txt", "r", stdin);int n, p;scanf("%d%d", &n, &p);for(int i = 0; i < n; i ++)scanf("%lld", &input[i]);sort(input, input+n);int max = 1, cur_count = 2;int index_t = 1, index_s = 0;for(; index_s < n-1; index_s ++){cur_count --;for(; index_t < n; index_t ++){if(input[index_t] <= input[index_s] * p)cur_count ++;elsebreak;}if(cur_count > max)max = cur_count;}printf("%d\n", max);return 0;}


0 0
原创粉丝点击