給定乙個正整數數列,和正整數 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
#include
#include
#include
#include
#define ll long long
using
namespace std;
int n, p;
int seq[
100010];
intbinsearch
(int i, ll x)
return left;
//必須返回left,不能是left-1?
}int
main()
printf
("%d"
, max)
;return0;
}
#include
#include
#define ll long long
using
namespace std;
int n, p;
ll seq[
100010];
//這個seq必須用ll,因為後面upper_bound查詢的是》max(ll)的第乙個元素
intmain()
sort
(seq, seq+n)
;int max =-1
;for
(int i =
0; i < n;
++i)
printf
("%d"
, max)
;return0;
}
#include
#include
#define ll long long
using
namespace std;
int n, p;
ll seq[
100010];
//這個seq必須用ll,因為後面upper_bound查詢的是》max(ll)的第乙個元素
intmain()
sort
(seq, seq+n)
;int left =
0, right =
0, len =1;
while
(left < n && right < n)
left++;}
printf
("%d\n"
, len)
;return0;
}
#include
using
namespace std;
const
int maxn =
100010
, inf =
1000000010
;int num[maxn]
;int
upperbound
(int l,
int r,
int x)
else
}return l;
}int
main()
sort
(num, num+n)
;int max =
0, max_element =-1
;for
(int i =
0; i < n;
++i)
printf
("%d"
, max)
;//wrong1: 求的是perfect array元素的數量,不是其中的最大元素
return0;
}
PAT B1030 完美數列(25 分)
給定乙個正整數數列,和正整數 p,設這個數列中的最大值是 m,最小值是 m,如果 m mp,則稱這個數列是完美數列。現在給定引數 p 和一些正整數,請你從中選擇盡可能多的數構成乙個完美數列。輸入第一行給出兩個正整數 n 和 p,其中 n 10 5 是輸入的正整數的個數,p 10 9 是給定的引數。第...
PAT B1030 完美數列 (25 分
1030 完美數列 25 分 給定乙個正整數數列,和正整數 p,設這個數列中的最大值是 m,最小值是 m,如果 m mp,則稱這個數列是完美數列。現在給定引數 p 和一些正整數,請你從中選擇盡可能多的數構成乙個完美數列。輸入第一行給出兩個正整數 n 和 p,其中 n 10 5 是輸入的正整數的個數,...
PAT B 1030 完美數列 25分
給定乙個正整數數列,和正整數 p,設這個數列中的最大值是 m,最小值是 m,如果 m mp,則稱這個數列是完美數列。現在給定引數 p 和一些正整數,請你從中選擇盡可能多的數構成乙個完美數列。在一行中輸出最多可以選擇多少個數可以用它們組成乙個完美數列。10 8 2 3 20 4 5 1 6 7 8 9...