排序,贪心。
从小到大排个序算一下就可以了。目测无论从哪个时间点开始算罚时,这样的贪心策略都是正确的。
#include#include #include #include #include #include #include using namespace std;int n,a[200];int ans1,ans2;int main(){ cin>>n; for(int i=1;i<=n;i++) cin>>a[i]; sort(a+1,a+1+n); int now=10; for(int i=1;i<=n;i++) { if(now+a[i]<=720) { now=now+a[i]; ans1++; ans2=ans2+max(0,now-360); } else break; } cout< <<" "< <