拼多多就做出一道题,是不是没希望了???
分糖果
#include <iostream>
#include <algorithm>
using namespace std;
#define N 15
#define M 105
struct bear{
int index;
int ability;
int jier;
};
bear be[N];
int tang[M];
bool cmp(int a,int b)
{
return a<b;
}
bool cmp1(bear a,bear b)
{
return a.ability>b.ability;
}
bool cmp2(bear a,bear b)
{
return a.index<b.index;
}
int main(){
int n,m;
while(cin>>n>>m){
for(int i=0;i<m;i++)
cin>>tang[i];
int k=0;
for(int i=0;i<n;i++){
cin>>be[i].ability>>be[i].jier;
be[i].index=k++;
}
sort(tang,tang+m,cmp);
sort(be,be+n,cmp1);
for(int i=0;i<n;i++){
for(int j=m-1;j>=0;j--){
if(be[i].jier>=tang[j]){
be[i].jier-=tang[j];
tang[j]=0;
}
else
continue;
}
}
sort(be,be+n,cmp2);
for(int i=0;i<n;i++){
cout<<be[i].jier<<endl;
//cout<<be[i].ability<<" "<<be[i].jier<<endl;
}
}
return 0;
}