回答編集履歴

1 comment

mattn

mattn score 4561

2017/07/05 12:27  投稿

```c
#include <iostream>
#include <array>
#include <set>
int main() {
 const int n = 3;
 std::set<int> results;
 std::array<int, n> A = { 1, 10, 100 };
 // 2~N の搾取を全通り試す
 for (int v = 2; v <= A.size(); v++) {
   for (int i = 0; i < n; ++i) {
     int sum = A[i], c = 1;
     for (int j = i; j < n; ++j) {
       if (i == j) continue;
       sum += A[j];
       if (++c >= v) break;
     }
     results.insert(sum);
   }
 }
 for (int v : results)
   std::cout << v << ' ' << std::endl;
}
```
```
※計算量に無駄があります

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る