提出番号 | 2361 |
---|---|

提出者 | kya |

言語 | C++ |

提出日時 | 2020-03-26 00:46:00 |

問題名 | (28)いつだって一位の男、olphe君 |

結果 | AC |

点数 | 100% |

テストケース | 結果 | 得点 | 実行時間 | メモリ使用量 |
---|---|---|---|---|

1 | AC | 100% | 2ms | 7584KB |

2 | AC | 100% | 2ms | 7904KB |

3 | AC | 100% | 2ms | 7904KB |

4 | AC | 100% | 2ms | 7520KB |

5 | AC | 100% | 2ms | 8544KB |

6 | AC | 100% | 2ms | 8080KB |

7 | AC | 100% | 2ms | 7888KB |

8 | AC | 100% | 2ms | 7872KB |

9 | AC | 100% | 2ms | 7888KB |

10 | AC | 100% | 2ms | 8544KB |

11 | AC | 100% | 2ms | 8080KB |

12 | AC | 100% | 2ms | 7856KB |

13 | AC | 100% | 2ms | 8464KB |

14 | AC | 100% | 2ms | 7888KB |

15 | AC | 100% | 2ms | 8544KB |

16 | AC | 100% | 2ms | 8112KB |

17 | AC | 100% | 2ms | 8112KB |

18 | AC | 100% | 2ms | 7728KB |

19 | AC | 100% | 2ms | 7712KB |

20 | AC | 100% | 2ms | 7920KB |

```
#include <bits/stdc++.h>
using namespace std;
void chmin (int &a, int b) { if (a > b) a = b; }
constexpr int INF = (1<<30);
int main() {
int n, k;
cin >> n;
vector<int> p(n);
for (int i = 0; i < n; i++) cin >> p[i];
cin >> k;
int sum = 0, ans = INF;
for (int tmp = 1; tmp < (1<<n); tmp++) {
int s = tmp ^ (tmp>>1), i = __builtin_ctz(tmp);
if (s&(1<<i)) sum += p[i];
else sum -= p[i];
if (sum >= k) chmin(ans, sum);
}
cout << ans << endl;
return 0;
}
```