fork(1) download
  1. #include <algorithm>
  2. #include <iostream>
  3. #include <vector>
  4.  
  5. std::size_t compute(const std::vector<int>& v, std::size_t k)
  6. {
  7. std::vector<int> flags(v.size() - k, 0);
  8. flags.resize(v.size(), 1);
  9.  
  10. std::size_t sum = 0;
  11. do {
  12. std::size_t mul = 1;
  13. for (std::size_t i = 0; i != v.size(); ++i) {
  14. if (flags[i]) {
  15. mul *= v[i];
  16. mul %= 10003;
  17. }
  18. }
  19. sum += mul;
  20. sum %= 10003;
  21. } while (std::next_permutation(flags.begin(), flags.end()));
  22. return sum;
  23. }
  24.  
  25. int main()
  26. {
  27. std::cout << compute({1, 2, 3}, 1) << std::endl; // 6
  28. std::cout << compute({1, 2, 3}, 2) << std::endl; // 11
  29. return 0;
  30. }
  31.  
Success #stdin #stdout 0s 3432KB
stdin
Standard input is empty
stdout
6
11