Hatena::Grouptopcoder

SRM diary(Sigmar)

SigmarのTopcoder SRM参加記録など雑記です。
社会人になってから競技プログラミングを始めました。どこまで行けるか分かりませんが合間を見つけてアルゴリズムの勉強をしています。

2011-02-02SRM496 Div1

SRM496 Div1 250 ColoredStrokes

| 23:53 | SRM496 Div1 250 ColoredStrokes - SRM diary(Sigmar) を含むブックマーク はてなブックマーク - SRM496 Div1 250 ColoredStrokes - SRM diary(Sigmar) SRM496 Div1 250 ColoredStrokes - SRM diary(Sigmar) のブックマークコメント

Problem Statement

コーディングフェーズ

これは・・・縦と横でそれぞれ走査するだけなのでは・・・

簡単すぎないか?

でも合ってるようにしか思えないし、、書いてみよう

書けた

サンプル合った

提出

500を考える時間がたくさん取れて久々に嬉しい感じ


システムテスト

Passed


ソースコード

class ColoredStrokes {
public:
	int getLeast(vector <string> pict) {
		int res=0;
		int r=pict.size(), c=pict[0].size();

		for(int i=0; i<r; i++) pict[i].push_back('.');
		pict.push_back(string(c+1, '.'));

		for(int i=0; i<r; i++) {
			int p=0;
			for(int j=0; j<c+1; j++) {
				if(pict[i][j]=='R' || pict[i][j]=='G') p=1;
				if(pict[i][j]=='B' || pict[i][j]=='.') {
					if(p==1) res++;
					p=0;
				}
			}
		}
		for(int j=0; j<c; j++) {
			int p=0;
			for(int i=0; i<r+1; i++) {
				if(pict[i][j]=='B' || pict[i][j]=='G') p=1;
				if(pict[i][j]=='R' || pict[i][j]=='.') {
					if(p==1) res++;
					p=0;
				}
			}
		}
		return res;
	}
};
トラックバック - http://topcoder.g.hatena.ne.jp/jackpersel/20110202