2010-07-30
SRM477 Easy: Islands
過去問 | |
寝倒し回。
- 隣接する六角形のマス目同士が異なる属性なら海岸。それだけ
- 最近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; } };