#include <algorithm>
#include <iostream>
#include <vector>
std::size_t compute(const std::vector<int>& v, std::size_t k)
{
std::vector<int> flags(v.size() - k, 0);
flags.resize(v.size(), 1);
std::size_t sum = 0;
do {
std::size_t mul = 1;
for (std::size_t i = 0; i != v.size(); ++i) {
if (flags[i]) {
mul *= v[i];
mul %= 10003;
}
}
sum += mul;
sum %= 10003;
} while (std::next_permutation(flags.begin(), flags.end()));
return sum;
}
int main()
{
std::cout << compute({1, 2, 3}, 1) << std::endl; // 6
std::cout << compute({1, 2, 3}, 2) << std::endl; // 11
return 0;
}
I2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgoKc3RkOjpzaXplX3QgY29tcHV0ZShjb25zdCBzdGQ6OnZlY3RvcjxpbnQ+JiB2LCBzdGQ6OnNpemVfdCBrKQp7CiAgICBzdGQ6OnZlY3RvcjxpbnQ+IGZsYWdzKHYuc2l6ZSgpIC0gaywgMCk7CiAgICBmbGFncy5yZXNpemUodi5zaXplKCksIDEpOwoKICAgIHN0ZDo6c2l6ZV90IHN1bSA9IDA7CiAgICBkbyB7CiAgICAgICAgc3RkOjpzaXplX3QgbXVsID0gMTsKICAgICAgICBmb3IgKHN0ZDo6c2l6ZV90IGkgPSAwOyBpICE9IHYuc2l6ZSgpOyArK2kpIHsKICAgICAgICAgICAgaWYgKGZsYWdzW2ldKSB7CiAgICAgICAgICAgICAgICBtdWwgKj0gdltpXTsKICAgICAgICAgICAgICAgIG11bCAlPSAxMDAwMzsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBzdW0gKz0gbXVsOwogICAgICAgIHN1bSAlPSAxMDAwMzsKICAgIH0gd2hpbGUgKHN0ZDo6bmV4dF9wZXJtdXRhdGlvbihmbGFncy5iZWdpbigpLCBmbGFncy5lbmQoKSkpOwogICAgcmV0dXJuIHN1bTsKfQoKaW50IG1haW4oKQp7CiAgICBzdGQ6OmNvdXQgPDwgY29tcHV0ZSh7MSwgMiwgM30sIDEpIDw8IHN0ZDo6ZW5kbDsgLy8gNgogICAgc3RkOjpjb3V0IDw8IGNvbXB1dGUoezEsIDIsIDN9LCAyKSA8PCBzdGQ6OmVuZGw7IC8vIDExCiAgICByZXR1cm4gMDsKfQo=