某些部分由于本蒟蒻不通编程,可能对各位神犇造成视觉损害,请见谅
#include<bits/stdc++.h>
using namespace std;
struct way{
int h,s;
}a[50010];
int n,t;
int maxn=-10010;
bool cmp(way i,way j){
return i.s<j.s;
}
int bd(int x,int y,int z,int sum){
if(z==n){
maxn=max(maxn,sum);
return sum;
}
if(y-abs(x-a[z+1].s)<=0){
maxn=max(maxn,sum);
return sum;
}
maxn=max(maxn,max(bd(a[z+1].h,y-abs(x-a[z+1].s),z+1,sum+1),bd(x,y,z+1,sum)));
}
int main(){
cin>>t>>n;
for(int i=1;i<=n;i++){
cin>>a[i].h;
a[i].s=abs(a[i].h);
}
sort(a+1,a+n+1,cmp);
for(int i=1;i<=n;i++){
maxn=max(maxn,bd(0,t,i,0));
}
cout<<maxn;
return 0;
}
不管结果怎样,感谢所有帮助本蒟蒻的dalao,送上一个蒟蒻微不足道的关注!