Hatena::Grouptopcoder

naoya_t@topcoder RSSフィード

2009-01-17

SRM366 Div1 Easy: ChangingSounds

| 05:33 | SRM366 Div1 Easy: ChangingSounds - naoya_t@topcoder を含むブックマーク はてなブックマーク - SRM366 Div1 Easy: ChangingSounds - naoya_t@topcoder SRM366 Div1 Easy: ChangingSounds - naoya_t@topcoder のブックマークコメント

231.62点。(7'55") // Passed System Test

変数名を打ち込む時間が勿体ない。使ってないマクロを消す時間が勿体ない。

class ChangingSounds {
 public:
  int maxFinal(vector<int> changeIntervals, int beginLevel, int maxLevel) {
    int n=sz(changeIntervals);
    bool lev[2][maxLevel+1];
    rep(i,maxLevel+1) lev[0][i]=lev[1][i]=false;
    lev[0][beginLevel]=true;
    rep(s,n){
      int ci=changeIntervals[s];
      rep(i,maxLevel+1) lev[(s+1)%2][i]=false;
      rep(i,maxLevel+1) {
        if(lev[s%2][i]){
          if(i+ci<=maxLevel) lev[(s+1)%2][i+ci]=true;
          if(i-ci>=0) lev[(s+1)%2][i-ci]=true;
        }
      }
    }
    for(int i=maxLevel;i>=0;i--){
      if(lev[n%2][i]) return i;
    }
    return -1;
  }
};
トラックバック - http://topcoder.g.hatena.ne.jp/n4_t/20090117