Codeforces 140 D. New Year Contest

問題

n問からなるコンテストがある。
コンテストはPM 6:00からAM 6:00までの間行われる。
まず最初に、10分間かけて全ての問題に目を通す。


それぞれの問題を解くのにかかる時間はa[i]である。
問題を送信すると、「AM 0:00との時刻の差の分間」ぶんだけペナルティが課せられる。
問題はどの順序で解いてもよく、解き終えた問題はいつでも送信することができる。


最大で解ける問題の数および、そのときのペナルティを答えよ。
解ける問題数がタイの解き方が複数ある場合、ペナルティを最小にせよ。

制約条件

n≦100
a[i]≦720

方針

greedy.
簡単な方から問題を解けるだけとき、
AM 0:00より早く終わったものはAM 0:00になった瞬間に送り、それより後に解き終わったものは、終わった瞬間に送信する。

ソースコード

void run(){
  int n,a[100];
  cin>>n;
  rep(i,n)cin>>a[i];
  sort(a,a+n);
  int sum=10,ans=0,pena=0;
  rep(i,n)if(sum+a[i]<=720){
    sum+=a[i];
    ans++;
    pena+=max(0,sum-360);
  }
  cout<<ans<<" "<<pena<<endl;
}