kmjp's blog

競技プログラミング参加記です

TopCoder SRM 627 Div2 Medium HappyLetterDiv2

変わった形の制限のかけ方の問題。
http://community.topcoder.com/stat?c=problem_statement&pm=13245

問題

基本的な設定はDiv1 Easyと同じ。
Div1 Easyは特定の文字を残す消し方が可能か答える問題だったが、こちらはどの手順で消しても残る文字があればそれを答えよ。

解法

先のDiv1でも出てきた見解だが、過半数を占める文字があればどう消してもその文字が残る。

class HappyLetterDiv2 {
	public:
	char getHappyLetter(string letters) {
		int num[26],L=letters.size(),i;
		ZERO(num);
		FOR(i,L) num[letters[i]-'a']++;
		FOR(i,26) if(num[i]*2>L) return 'a'+i;
		return '.';
	}
}

まとめ

気づいてしまえばコードは単純。