【1085】Perfect Sequence (25 分)

简介: 【1085】Perfect Sequence (25 分)【1085】Perfect Sequence (25 分)
#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
#include<algorithm>  
#include<map>
#include<vector>
#include<queue> 
using namespace std;
const int maxn=100010;
int n,p,a[maxn];
int main(){   
  scanf("%d%d",&n,&p);
  for(int i=0;i<n;i++){
    scanf("%d",&a[i]);
  }
  sort(a,a+n);  //递增排序
  int ans=1; //最大长度,初值为1(表示至少有一个数)
  for(int i=0;i<n;i++){
    //key:在a[i+1]~a[n-1]中查找第一个超过a[i]*p的数字,返回其位置给j
    int j=upper_bound(a+i+1,a+n,(long long)a[i]*p)-a; //记得此处要减a!!!
    //注意upper_bound返回的是地址
    ans=max(ans,j-i); //更新最大长度
  }
  printf("%d\n",ans);  //输出结果
  system("pause");
    return 0;   
}
相关文章
|
存储 算法
PAT (Advanced Level) Practice 1046 Shortest Distance (20 分)
PAT (Advanced Level) Practice 1046 Shortest Distance (20 分)
91 0
PAT (Advanced Level) Practice 1046 Shortest Distance (20 分)
|
存储
PAT (Advanced Level) Practice - 1051 Pop Sequence(25 分)
PAT (Advanced Level) Practice - 1051 Pop Sequence(25 分)
100 0
【1140】Look-and-say Sequence (20分)
【1140】Look-and-say Sequence (20分) 【1140】Look-and-say Sequence (20分)
85 0
【1051】Pop Sequence (25 分)
【1051】Pop Sequence (25 分) 【1051】Pop Sequence (25 分)
105 0
uva 10706 - Number Sequence
点击打开链接uva 10706 题目意思:    有一个数组 s[1] = 1 , s[2] = 1 2 , .......s[k] = 1....k,要求给定一个n表示数组的第几位,要求这个第几位是什么数。
951 1
1085. Perfect Sequence (25)
#include #include #include using namespace std; int main() { int n; long p; cin >> n >> p; v...
870 0