SRM560 Div1 Easy - TomekPhone

問題

解法

keySizesの各要素s[i]について、ある文字を1〜s[i]回のストロークで入力できるように割り当てることができる
多い文字ほど少ないストロークで入力できるようにするのが明らかに最善だから、ソートして貪欲に割り当てればok

class TomekPhone {
public:
	int minKeystrokes(vector<int> a, vector<int> s) {
		vector<int> t;
		each(i,s) reps(j,1,i+1) t.push_back(j);
		if (a.size()>t.size()) return -1;
		sort(all(t)), sort(a.rbegin(),a.rend());
		int res = 0;
		rep(i,a.size()) res += a[i] * t[i];
		return res;
	}
};

https://community.topcoder.com/stat?c=problem_statement&pm=12296&rd=15182