首页 > 其他分享 >PAT (Basic Level) Practice 1030 完美数列 分数 25

PAT (Basic Level) Practice 1030 完美数列 分数 25

时间:2022-09-22 15:14:09浏览次数:54  
标签:count 25 arr PAT 数列 Level int max 正整数

给定一个正整数数列,和正整数 p,设这个数列中的最大值是 M,最小值是 m,如果 M≤mp,则称这个数列是完美数列。

现在给定参数 p 和一些正整数,请你从中选择尽可能多的数构成一个完美数列。

输入格式:

输入第一行给出两个正整数 N 和 p,其中 N(≤105)是输入的正整数的个数,p(≤109)是给定的参数。第二行给出 N 个正整数,每个数不超过 109。

输出格式:

在一行中输出最多可以选择多少个数可以用它们组成一个完美数列。

输入样例:

10 8
2 3 20 4 5 1 6 7 8 9
 

输出样例:

8
  代码长度限制 16 KB 时间限制 200 ms 内存限制 64 MB 解题:

#include<stdio.h>
#include<stdlib.h>
int comp(const void*a,const void*b)
{
return *(int*)a-*(int*)b;
}

int main()
{
int i,j,n,max,min;
long long p;
int arr[100001];
int count=0,temp=0;
scanf("%d %lld",&n,&p);
for(i=0;i<n;i++)
{
scanf("%d ",&arr[i]);
}
qsort(arr,n,sizeof(int),comp);
for(i=0;i<n;i++)
{
for (j=i+count;j<n;j++)
{
if(arr[j]<=arr[i]*p)
{
temp = j - i + 1;
if (temp > count)
count = temp;
}
else
{
break;
}
}
}
printf("%d",count);
return 0;
/*for(i=0;i<n;i++)
{
if(arr[i]<min)
{
min=arr[i];
}
}
for(i=0;i<n;i++)
{
if(arr[i]<=min*p)
{
count++;
}
}

for(i=0;i<n;i++)
{
if(arr[i]>max)
{
max=arr[i];
}
}
for(i=0;i<n;i++)
{
if(max<=arr[i]*p)
{
count2++;
}
}
if(count>count2) printf("%d",count);
if(count<=count2) printf("%d",count2);*/
}

   

标签:count,25,arr,PAT,数列,Level,int,max,正整数
From: https://www.cnblogs.com/slowlydance2me/p/slowlydance2me_1030.html

相关文章

  • PAT (Basic Level) Practice 1031 查验身份证 分数 15
    一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下:首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};然后将计算的......
  • PAT (Basic Level) Practice 1032 挖掘机技术哪家强 分数 20
    为了用事实说明挖掘机技术到底哪家强,PAT组织了一场挖掘机技能大赛。现请你根据比赛结果统计出技术最强的那个学校。输入格式:输入在第1行给出不超过 105 的正整数......
  • PAT (Basic Level) Practice 1033 旧键盘打字 分数 20
    旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现。现在给出应该输入的一段文字、以及坏掉的那些键,打出的结果文字会是怎样?输入格式:输入在2行中分别......
  • PAT (Basic Level) Practice 1021 个位数统计 分数 15
    给定一个 k 位整数 N=dk−1​10k−1+⋯+d1​101+d0​ (0≤di​≤9, i=0,⋯,k−1, dk−1​>0),请编写程序统计每种不同的个位数字出现的次数。例如:给定 N=100311,则......
  • PAT (Basic Level) Practice 1022 D进制的A+B 分数 20
    输入两个非负10进制整数 A 和 B (≤230−1),输出 A+B 的 D (1<D≤10)进制数。输入格式:输入在一行中依次给出3个整数 A、B 和 D。输出格式:输出 A+B ......
  • PAT (Basic Level) Practice 1023 组个最小数 分数 20
    给定数字0-9各若干个。你可以以任意顺序排列这些数字,但必须全部使用。目标是使得最后得到的数尽可能小(注意0不能做首位)。例如:给定两个0,两个1,三个5,一个8,我们得到......
  • PAT (Basic Level) Practice 1013 数素数 分数 20
    令 Pi​ 表示第 i 个素数。现任给两个正整数 M≤N≤104,请输出 PM​ 到 PN​ 的所有素数。输入格式:输入在一行中给出 M 和 N,其间以空格分隔。输出格式:输......
  • PAT (Basic Level) Practice 1014 福尔摩斯的约会 分数 20
    大侦探福尔摩斯接到一张奇怪的字条:我们约会吧!3485djDkxh4hhGE2984akDfkkkkggEdsbs&hgsfdkd&Hyscvnm 大侦探很快就明白了,字条上奇怪的乱码实际上就是约会的......
  • PAT (Basic Level) Practice (中文)1015 德才论 分数 25
    宋代史学家司马光在《资治通鉴》中有一段著名的“德才论”:“是故才德全尽谓之圣人,才德兼亡谓之愚人,德胜才谓之君子,才胜德谓之小人。凡取人之术,苟不得圣人,君子而与之,与其......
  • PAT (Basic Level) Practice 1017 A除以B 分数 20
    本题要求计算 A/B,其中 A 是不超过1000位的正整数,B 是1位正整数。你需要输出商数 Q 和余数 R,使得 A=B×Q+R 成立。输入格式:输入在一行中依次给出 A 和......