拼多多小熊吃糖编程题

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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
package sep2th.pinduoduo;
import java.util.*;
/**
* @Author ZhangQiong nwsuafzq@hotmail.com
* @Date 2017/9/2
* @Time 14:56.
*/
public class Main {
public static void func(int m,ArrayList<Integer> candylist, LinkedHashMap<Integer,Integer> bearmap){
Object[] key_arr = bearmap.keySet().toArray();
Arrays.sort(key_arr);
for (int i=key_arr.length-1;i>=0;i--) {
int value = bearmap.get(key_arr[i]);
int shengyu=value;
int index=0;
for (int j = index; j <candylist.size(); j++) {
// System.out.println(candylist.get(j)+"yayayay"+" j:"+j);
if(shengyu-candylist.get(j)>=0) {
// System.out.println(candylist.get(j)+"aaaaa"+shengyu);
shengyu = shengyu - candylist.get(j);
candylist.remove(j);
j--;
}
bearmap.put((Integer) key_arr[i],shengyu);
}
}
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
ArrayList<Integer> candylist=new ArrayList();
LinkedHashMap<Integer,Integer> bearmap=new LinkedHashMap<Integer,Integer>();
int n=scanner.nextInt();//熊数量
int m=scanner.nextInt();//糖果数量
for (int i = 0; i <m ; i++) {
candylist.add(scanner.nextInt());
}
Collections.sort(candylist);
Collections.reverse(candylist);
/*for (int i:candylist
) {
System.out.println(i);
}*/
for (int i = 0; i <n ; i++) {
int k=scanner.nextInt();
int v=scanner.nextInt();
bearmap.put(k,v);
}
func(m,candylist,bearmap);
Set<Integer> keySet = bearmap.keySet();
Iterator<Integer> iter = keySet.iterator();
while(iter.hasNext()){
int key = iter.next();
System.out.println(bearmap.get(key));
}
}
}

当前网速较慢或者你使用的浏览器不支持博客特定功能,请尝试刷新或换用Chrome、Firefox等现代浏览器