#include<bits/stdc++.h>
using namespace std;
int n,b,h[25],a[25],ans1,ans2;
bool cmp(int x,int y)
{
return x>y;
}
int main()
{
cin>>n>>b;
for(int i=1;i<=n;i++)
{
cin>>h[i];
a[i]=h[i];
}
sort(h+1,h+n+1);
sort(a+1,a+n+1,cmp);
for(int i=1;i<=n;i++)
{
ans1+=h[i];
if(ans1>=b)
break;
}
for(int i=1;i<=n;i++)
{
ans2+=a[i];
if(ans2>=b)
break;
}
cout<<min(ans1,ans2)-b<<endl;
return 0;
}
这种用sort()排序写的代码竟然都能够奇葩地通过!我来出一组Hack数据:
7 10
3 1 2 7 5 5 6
正确:1+2+7=10/5+5=10……
从矮到高:1 2 3 5 5 6 7 1+2+3+5=11
从高到矮:7 6 5 5 3 2 1 7+6=13
10<11<13
因此,此题不能够用sort()排序一遍过
求管理员加强数据,谢谢!qwq~