SRM427 Div2Easy LoveCalculator
問題概要
'L','O','V','E'の頻度を調べて、与えられた式によって得点を最大化せよ。
解法
概要の通りの実装。
class LoveCalculator { public: int calc(int l, int o, int v, int e) { return ((l+o)*(l+v)*(l+e)*(o+v)*(o+e)*(v+e))%100; } string findBoy(string girl, vector <string> boys) { map<char, int> mp, mp2; for(int i=0; i<girl.size(); i++) { mp[girl[i]]++; } sort(ALL(boys)); int mx = -INF; string ans = boys[0]; int const N = boys.size(); for(int i=0; i<N; i++) { mp2 = mp; int const M = boys[i].size(); for(int j=0; j<M; j++) { mp2[boys[i][j]] ++; } int temp; if(mx < (temp = calc(mp2['L'], mp2['O'], mp2['V'], mp2['E']))) { ans = boys[i]; mx = temp; } } return ans; } };