解いた問題

2/15/2012

SRM487 Div1 Easy

250
一日悩んだ。
K+1周期で同じ色に塗り分けると気付く
class BunnyComputer {
public:
  int getMaximum(vector <int> P, int K)
  {
    int ret = 0;

    for (int i = 0; i < K + 1 && i < P.size(); ++i) {
      int mn = 1 << 30;
      int sum = 0;
      int cnt = 0;
      for (int j = i; j < P.size(); j += K + 1) {
        sum += P[j];
        ++cnt;
        if (cnt % 2) mn = min(mn, P[j]);
      }
      ret += sum;
      if (cnt % 2) ret -= mn;
    }

    return ret;
  }
};

0 件のコメント :

コメントを投稿