SRM569 Div2 Easy "TheJediTestDiv2"
問題
http://community.topcoder.com/stat?c=problem_statement&pm=12404
訳
教室がN部屋あり、i番目の教室には生徒がstudents[i]人いる。
これからテストを実施するので、監察官を各教室に配置したい。
監察官一人当たり、J人の生徒を監視する事が可能である。
あなたは特別で、Y人の生徒を監視する事が可能である。
あなたと共に最低限配置しなければならない監察官の人数を返せ。
返す人数にあなたは含めない事。
制約
1 <= 教室の数 <= 50
1 <= 各教室の生徒数 <= 1000
1 <= J <= 999
J+1 <= Y <= 1000
考えた事
自分が監視する教室を決めて、必要な監察官の人数を出す。
それを全ての教室で調べて、最小の値をとっていく。
ソースコード
class TheJediTestDiv2 { public: int countSupervisors(vector <int> students, int Y, int J){ int n = students.size(); int res = 100000; for( int i = 0; i < n; i++ ){ int jNum = 0; for( int j = 0; j < n; j++ ){ int s = students[j]; if( i == j ){ if( s > Y ){ s -= Y; jNum += s / J + (s % J ? 1 : 0); } }else{ jNum += s / J + (s % J ? 1 : 0); } } res = min( res, jNum ); } return res; } };