拼多多第一题%40
import java.util.Arrays;
import java.util.Scanner;
public class Main {
static class Bear{
int fight;
int stav;
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int nbears = in.nextInt();
int snum = in.nextInt();
int sugers[] = new int[snum];
Bear[] bears = new Bear[nbears];
for(int i=0;i<snum;i++){
sugers[i]=in.nextInt();
}
for(int i=0;i<nbears;i++){
Bear b = new Bear();
b.fight= in.nextInt();
b.stav = in.nextInt();
bears[i] = b;
}
if(nbears==0){
System.out.print(0);
}
Arrays.sort(sugers);
int bearmap[] = new int[nbears];
int sugermap[] = new int[snum];
for(int i=0;i<nbears;i++){
int tid = gettopFight(bearmap,bears);
if(tid!=-1){
bearmap[tid]=1;
eatsuger(tid,bears,sugermap,sugers);
System.out.println(bears[i].stav); //不应该在这里输出,这里顺序是错的
}
}
}
private static void eatsuger(int tid, Bear[] bears, int[] sugermap,
int[] sugers) {
for(int i=sugers.length-1;i>-1;i--){
if(sugermap[i]!=1){
if(bears[tid].stav>=sugers[i]){
//吃掉糖
bears[tid].stav = bears[tid].stav-sugers[i];
sugermap[i]=1;
}
}
}
}
private static int gettopFight(int[] bearmap, Bear[] bears) {
int max = -1;
int num = -1;
for(int i=0;i<bears.length;i++){
if(bearmap[i]!=1){
if(max<bears[i].fight){
max = bears[i].fight;
num = i;
}
}
}
return num;
}
}