题目链接
这道题很精髓,他测试点4卡的是时间问题
首先对这些数排序,然后遍历,用break节约时间
#pragma GCC optimize(2)
#include<iostream>
#include<vector>
#include<algorithm>
#include<cmath>
using namespace std;
int main()
{
long long int n,p;
cin>>n>>p;
vector<long long int>ans;
for(int i=0;i<n;i++){
int t;
cin>>t;
ans.push_back(t);
}
sort(ans.begin(),ans.end());
int cnt=1;
for(int i=0;i<ans.size();i++){
for(int j=i+cnt;j<ans.size();j++){
if(ans[j]<=ans[i]*p){
cnt=j-i+1;
}else{
break;
}
}
}
cout<<cnt;
return 0;
}