解いた問題

4/16/2011

SRM309Div2

250
問題を読むのに時間がかかった。
class ContestCoordinator {
public:
  double bestAverage(vector <int> s) {
    double mx = -1;
    sort(s.begin(), s.end());
    for(int k=0; k<s.size(); ++k){
      double sum = 0;
      double cnt = 0;
      for(int i=k; i+k<s.size(); ++i){
        sum += s[i];
        ++cnt;
      }
      if(cnt)mx = max(mx, sum / cnt);
    }
    return mx;
  }
}; 
500
問題を読むのに時間がかかった。
class ScoreRecomposition {
public:
  int minError(string q, int s) {
    const int inf = 1 << 24;
    const int size = q.size();
    int r = inf;
    int n[size];
    for(int i=0; i<size; ++i){
      n[i] = i + 1;
    }
    do{
      int sum = 0;
      for(int i=0; i<size; ++i){
        sum += (q[i] == 'C') * n[i];
      }
      if(sum != s)continue;
      int e = 0;
      for(int i=0; i<size; ++i){
        e = max(e, abs(i + 1 - n[i]));
      }
      r = min(r, e);
    }while( next_permutation(n, n + size) );
    return r == inf ? -1 : r;
  }
};
1000

0 件のコメント :

コメントを投稿