Hatena::Grouptopcoder

naoya_t@topcoder RSSフィード

2010-07-30

SRM477 Easy: Islands

| 01:46 | SRM477 Easy: Islands - naoya_t@topcoder を含むブックマーク はてなブックマーク - SRM477 Easy: Islands - naoya_t@topcoder SRM477 Easy: Islands - naoya_t@topcoder のブックマークコメント

寝倒し回。

  • 隣接する六角形のマス目同士が異なる属性なら海岸。それだけ
  • 最近HHKB触ってなくて打鍵がもたつく...
  • 229.37 (8'40'')
  • passed
  • とりあえずこれが取れてればレーティングは微増だったっぽい
using namespace std;
#define sz(a)  int((a).size())
#define pb  push_back
#define FOR(var,from,to) for(int var=(from);var<=(to);var++)
#define rep(var,n)  for(int var=0;var<(n);var++)
#define all(c)  (c).begin(),(c).end()

class Islands {
 public:
  int beachLength(vector <string> kingdom) {
    int R=sz(kingdom),C=sz(kingdom[0]);
    int b=0;
    rep(r,R){
      rep(c,C-1){
        if(kingdom[r][c]!=kingdom[r][c+1])b++;
      }
    }
    for(int r=0;r<R-1;r+=2){
      rep(c,C){
        if(kingdom[r][c]!=kingdom[r+1][c])b++;
      }
      rep(c,C-1){
        if(kingdom[r][c+1]!=kingdom[r+1][c])b++;
      }
    }
    for(int r=1;r<R-1;r+=2){
      rep(c,C){
        if(kingdom[r][c]!=kingdom[r+1][c])b++;
      }
      rep(c,C-1){
        if(kingdom[r][c]!=kingdom[r+1][c+1])b++;
      }
    }
    return b;
  }
};
トラックバック - http://topcoder.g.hatena.ne.jp/n4_t/20100730