码迷,mamicode.com
首页 > 其他好文 > 详细

1030 完美数列

时间:2020-02-18 13:04:59      阅读:49      评论:0      收藏:0      [点我收藏+]

标签:col   pointer   cin   递增   ret   数列   stream   while   std   

 two pointers通向扫描法。

#include<iostream>
#include<algorithm>
using namespace std;
typedef long long LL;
LL a[100010] = {0};
int main() {
    int n,p,max = -1;
    cin>>n>>p;
    for(int i = 0; i < n; ++i)
        cin>>a[i];
    sort(a,a+n);//递增排序
    int i = 0,j = 0;
    while(i < n) {//two poniters同向扫描 
        while(j < n && a[j]<= a[i]*p)//用int型的话a[i]*p会溢出,所以数组定义成了long long类型
            j++;
        if(max < j-i)
            max = j-i;
        i++;
    }
    cout<<max;
    return 0;
}

技术图片

 

1030 完美数列

标签:col   pointer   cin   递增   ret   数列   stream   while   std   

原文地址:https://www.cnblogs.com/keep23456/p/12325589.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!