結果
問題 |
No.50 おもちゃ箱
|
ユーザー |
|
提出日時 | 2020-06-11 16:15:33 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 151 ms / 5,000 ms |
コード長 | 707 bytes |
コンパイル時間 | 2,712 ms |
コンパイル使用メモリ | 200,504 KB |
最終ジャッジ日時 | 2025-01-11 01:12:10 |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 38 |
ソースコード
#include <bits/stdc++.h> using namespace std; int main() { int N; cin >> N; vector<int> A(N); for (int i = 0; i < N; ++i) { cin >> A[i]; } int M; cin >> M; vector<int> B(M); for (int i = 0; i < M; ++i) { cin >> B[i]; } sort(B.begin(), B.end(), greater<int>()); int res = 0x3f3f3f3f; sort(A.begin(), A.end()); do { int c = 0x3f3f3f3f; for (int i = 0, j = 0; i < M; ++i) { int s = 0; while (j < N && s + A[j] <= B[i]) s += A[j++]; if (j == N) { c = i + 1; break; } } res = min(res, c); } while (next_permutation(A.begin(), A.end())); if (res == 0x3f3f3f3f) res = -1; cout << res << endl; return 0; }