priority_queue 这里咋么一直CE啊
#include<bits/stdc++.h>
#define ll long long
#define sc(a) scanf("%lld",&a)
#define ps(b) printf("%lld ",b)
#define pn(b) printf("%lld\n",b)
#define F(i,a,b) for(ll i=a;i<=b;i++)
#define R(i,a,b) for(ll i=a;i>=b;i--)
using namespace std;
const ll N=1e3+7;
ll n,m,now,ans,ansa[N],ansb[N],c[N],w[N];
struct node{
ll pos,k,val;
bool operator<(const node& x)const{
return val>x.val;
}
};
priority_queue<node,vector<node>,greater<node> > q;
int main(){
sc(n),sc(m);
now=m;
F(i,1,n){
sc(c[i]);
}
F(i,1,n) sc(w[i]);
F(i,1,n){
now-=c[i]%100;
ansa[i]=c[i]/100;
q.push((node){i,100-(c[i]%100),(100-(c[i]%100))*w[i]});
if(now<0){
ansa[q.top().pos]++;
ansb[i]=q.top().k;
now+=100;
ans+=q.top().val;
q.pop();
}
}
pn(ans);
F(i,1,n){
ps(ansa[i]),pn(ansb[i]);
}
return 0;
}