求助,看了下#14的数据,输入后输出是0。
#include<bits/stdc++.h>
using namespace std;
#define int long long
struct bs{int m;int s;}a[1000001];
struct wt{int q;int d;}b[1000001];
bool cmp(bs a,bs b){
return a.m>b.m;
}
bool cmpp(wt a,wt b){
return a.q>b.q;
}
int c[1000001];
signed main(){
int c_num,p;
cin>>c_num>>p;
for(int i=0;i<c_num;++i)cin>>a[i].m>>a[i].s;
for(int i=0;i<p;++i)cin>>b[i].q>>b[i].d;
sort(a,a+c_num,cmp);
sort(b,b+p,cmpp);
int maxs=0;
int qk=1;
for(int i=0;i<p;++i)qk*=(c_num+1);
for(int i=0;i<qk;++i){
int cnt=i;
int cur=0;
for(int j=0;j<p;++j){c[j]=cnt%(c_num+1);cnt/=(c_num+1);}
for(int j=0;j<p;++j){
if(c[j]>0){
int k=c[j]-1;
if(b[j].q>=a[k].m){cur+=a[k].s;cur-=b[j].d;}
}
}
maxs=max(maxs,cur);
}
cout<<maxs<<endl;
return 0;
}