拼多多第一题有全AC的大牛吗?请大牛雅正我的代码,ac40%
package changshi;
import java.util.*;
public class changshi{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
while(sc.hasNext())
{
int n = sc.nextInt();//小熊的数量
int m = sc.nextInt();//糖的数量
int[] m1 = new int[m];//存每颗糖所包含的能量
for(int i = 0 ; i < m ; i++)
{
m1[i] = sc.nextInt();
}
Arrays.sort(m1);//排序完成以后,填充饥饿值最大的糖果在最后面,max=m1[m1.length-1]
TreeMap<Integer , Integer> map1 = new TreeMap<>();//用来存战斗力和饥饿值,TreeMap根据key值排序,在最后的战斗力最强
for(int j = 0 ; j < n ; j++)
{
map1.put(sc.nextInt() , sc.nextInt());
}
Map<Integer , Integer> map2 = map1.descendingMap();//把TreeMap逆序,方便遍历,现在战斗力最强的在前面
for (Integer key : map2.keySet())
{
int je = map2.get(key);
for(int k = m1.length-1 ; k >=0 ; k--)
{
if(je >= m1[k])
{
je -= m1[k];
m1[k] = 0;//糖吃掉了要归零
}
else if(je < m1[k])
{
continue;
}
}
System.out.println(je);
}
}
}
}