//upper_bound(a+i,a+j+1,p) 返回a[i]~a[j]中第一个超过p的数的指针
#include <iostream> #include <algorithm> #include <cstdio> #include <cstdlib> using namespace std; long long a[100005]; int N,p,ans=1;
int main() { freopen("in.txt","r",stdin); scanf("%d %d",&N,&p); for(int i=0;i<N;i++) { scanf("%lld",&a[i]); } sort(a,a+N); for(int i=0;i<N;i++) { //upper_bound(a+i,a+j+1,p) 返回a[i]~a[j]中第一个超过p的数的指针 int t=upper_bound(a+i+1,a+N,a[i]*p)-&a[i]; ans=max(ans,t); } printf("%d",ans); return 0; }
//upper_bound(a+i,a+j+1,p) 返回a[i]~a[j]中第一个超过p的数的指针
函数upper_bound()用法 -- 1085. Perfect Sequence (25)
最新推荐文章于 2024-04-09 16:12:08 发布