前三个点 MLE 后七个点 TLE,本地样例和自己的数据过了,已经确认是输入的问题。
#include<bits/stdc++.h>
using namespace std;
struct node{
int p1,p2;
};
int n,ma,flag,mo,ans,l,r,p,pp;
node a[1005];
bool cmp(node x,node y){
x.p2-x.p1>y.p2-y.p1;
}
int main(){
cin>>n>>ma;
for(int i=0;i<n;i++){
p=0,pp=0;
cin>>p;
if(getchar()==' '){
cin>>pp;
if(pp-ma<=p) mo+=p;
else a[r].p1=p,a[r].p2=pp-ma,r++;
}else mo+=p;
}
sort(a,a+r,cmp);
while(l<r){
if(mo<ma){
for(int i=r-1;i>=l;i--){
r--;
mo+=a[i].p1;
if(mo>=ma) break;
}
}else{
mo+=a[l].p2;
l++;
}
}
cout<<mo;
return 0;
}
记录