思路:贪心+排序。罚时与时间成正比,因为在0点前做完的题都可以在0点提交。从时间短的开始做最优。
代码:
#include<bits/stdc++.h> using namespace std; const int N=105; const int INF=0x3f3f3f3f; int a[N]; int main() { ios::sync_with_stdio(false); cin.tie(0); int n; cin>>n; for(int i=0;i<n;i++) { cin>>a[i]; } sort(a,a+n); int cnt=0,ans=0,sum=0; for(int i=0;i<n;i++) { sum+=a[i]; if(sum>710) { cnt=i; break; } if(sum>350)ans+=sum-350; } if(cnt==0&&a[0]<=710)cnt=n; cout<<cnt<<' '<<ans<<endl; return 0; }