这架飞机被虫虫承包了
Time Limit: 1 Sec Memory Limit: 128 MB
虫虫上次升级了铁路系统后,发现很多人开始选择民航出行了。所以虫虫想要承包一架飞机来服务大家。
虫虫需要一个民航订票系统。每个用户都有一个自己的心理预期接受的机票价格,如果机票定价超过这个价格,这个用户是不会买票的。虫虫知道每个人的接受价格。现在虫虫想让你帮助确定票价,票价确定后,可以出票给那些愿意买票的用户,这些用户的接受价格不低于机票定价。当然这时候用户只会按照定价给钱。虫虫希望在这些限定之下,卖最多的机票钱。
同样,飞机运行时不能超载。

传送门:SHUOJ1974

Input

第一行三个整数 n, k,表示有 n 个人想买票,限载 k 人。 下一行 n 个整数 z,表示一个用户心理接受价格是 z 元。 1 <= n, k, z <= 1000

Output

两个数字 x, y,x 表示票价,y 表示卖出的最多的机票钱数。在保证 y 最大的同时,保证 x 最小。

Sample Input

1
2
5 2
1 3 2 1 2

Sample Output

1
2
3
2 4
Source
shu-mj

题解

= =暴力枚举,记录所有价格对应能接受的人数,然后按题意求最大
## AC code:(不包含输入类)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import java.io.*; 
import java.util.*;
public class Main {
static double p=3.1415926;
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
while(sc.hasNext()){
int n=sc.nextInt();
int k=sc.nextInt();
int[]shu=new int [1001];
//int[]temp=new int [n];
for(int i=0;i<n;i++){
shu[sc.nextInt()]++;
}
for(int i=0;i<1001;i++){
for(int j=i+1;j<1001;j++){
shu[i]+=shu[j];
}
}
int result=-1;
int jg=0;
for(int i=0;i<1001;i++){
if(shu[i]<=k){
if(i*shu[i]>result){ //求最大不要加等号
result=i*shu[i];
jg=i;
}
}
else
if(i*k>result){
result=i*k;
jg=i;
}
}
System.out.println(jg+" "+result);
}

}
}