WARush

SRMの結果とか、解けた問題のコードを書いていきます

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;
    }
};