Hatena::Grouptopcoder

TopCoderの問題を解く

解いた問題の一覧表

2009-07-05

LeaguePicks

| 19:47

問題文

436.29 -> 498.91 / 500

position-th と (2*friends+position+1)-th にあたる pick を取る。簡単な問題。問題文の Examples にヒントが書かれている。

class LeaguePicks {
public:
    vector <int> returnPicks(int position, int friends, int picks) {
        vector <int> result;
        int p = 0;
        while (true) {
            int next = p + position;
            if (next <= picks) result.push_back(next);
            else break;
            next = p + 2*friends - position + 1;
            if (next <= picks) result.push_back(next);
            else break;
            p += 2 * friends;
        }
        return result;
    }
};