Hatena::Grouptopcoder

kojingharangの日記 RSSフィード

 | 

2011-12-29

250 MinCostPalindrome

14:07 |  250 MinCostPalindrome - kojingharangの日記 を含むブックマーク はてなブックマーク -  250 MinCostPalindrome - kojingharangの日記  250 MinCostPalindrome - kojingharangの日記 のブックマークコメント

  • 回文になるように ? を x か o に置き換えるときの最小コストを求める
  • 奇数の長さに対応してないコードに対してチャレンジしようとしたら、問題条件に書いてある通り長さは偶数だぜと言われる orz
class MinCostPalindrome {
	public:
	int getMinimum(string s, int oCost, int xCost) {
		int ans = 0;
		REP(i, s.size()/2) {
			if(s[i]=='?'&&s[s.size()-i-1]=='?') ans += min(oCost, xCost)*2;
			else if(s[i]=='?') ans += s[s.size()-i-1]=='o'?oCost:xCost;
			else if(s[s.size()-i-1]=='?') ans += s[i]=='o'?oCost:xCost;
			else if(s[i]!=s[s.size()-i-1]) return -1;
		}
		if(s.size()&1) if(s[s.size()/2]=='?') ans += min(oCost, xCost);
		return ans;
	}
 |