SRM 331 Div2 Easy SantaGifts

問題

サンタがN人の子供にプレゼントを配る.子供は列に並んでいて,先頭から一人ずつプレゼントのリストgiftsを配っていく.子供は貰ったプレゼントの数が4個になるまで列の後ろに並び直す.この時各子供が受け取るプレゼントを求めよ.

解答

先頭からi番目の子供はi, i+N, i+2N, i+3N番目のプレゼントを受け取ることが出来る.

class SantaGifts
{
public:
  vector <string> distribute(vector <string> gifts, int N)
    {
      int m = gifts.size();
      int i, j;
      vector<string> res(N, "");
      for(i = 0; i < N; i++){
        for(j = i; j < m; j += N){
          if ((j/N) >= 4) break;
          if (j != i) res[i] += " ";
          res[i] += gifts[j];
        }
      }
      return res;
    }
};