1 条题解
-
0
C :
#include<stdio.h> int main() { int n,p,max,i,j,x[112],t; while(scanf("%d%d",&n,&p)==2) { max=0; for(i=0;i<n;i++) scanf("%d",&x[i]); for(i=0;i<n-1;i++) for(j=i+1;j<n;j++) if(x[i]>x[j]){t=x[i];x[i]=x[j];x[j]=t;} for(i=0;i<n;i++) { for(j=n-1;j>i;j--) if(x[i]*p>=x[j])break; t=j-i+1;if(t>max)max=t; } printf("%d\n",max); } return 0; }
C++ :
#include<string.h> #include<stdio.h> #include<stdlib.h> #include<iostream> #include<vector> #include<algorithm> using namespace std; typedef long long ll; int main(){ vector<int>vec; int n,p,i,ans,tmp,x; long long xx; while(scanf("%d%d",&n,&p)!=EOF){ vec.clear(); ans=0; for(i=0;i<n;i++){ scanf("%d",&x); vec.push_back(x); } sort(vec.begin(),vec.end()); for(i=0;i<n;i++){ xx=(long long)((long long)vec[i]*(long long)p); int maxpos; if(xx>1000000000) maxpos=n-1; else maxpos=upper_bound(vec.begin(),vec.end(),(int)xx)-vec.begin()-1; tmp=maxpos-i+1; if(ans<tmp){ ans=tmp; } } printf("%d\n",ans); } return 0; }
- 1
信息
- ID
- 893
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者