結果
問題 |
No.1872 Dictionary Order
|
ユーザー |
|
提出日時 | 2021-12-19 15:31:07 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
RE
|
実行時間 | - |
コード長 | 765 bytes |
コンパイル時間 | 2,160 ms |
コンパイル使用メモリ | 198,184 KB |
最終ジャッジ日時 | 2025-01-27 03:41:19 |
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | RE * 32 |
ソースコード
#include <bits/stdc++.h> using namespace std; int main() { int N, M; cin >> N >> M; assert(N <= 25); vector<int> A(N), P(N); for (int i=0; i<N; ++i) cin >> A[i]; for (int i=0; i<N; ++i) cin >> P[i]; vector<int> B, H{N + 1}; for (int i=0; i<(1<<N); ++i) { int sum = 0; vector<int> C, D; for (int j=0; j<N; ++j) { if ((i>>j) & 1) { sum += A[j]; C.push_back(j); D.push_back(P[j]); } } if (sum == M && D < H) { B = C; H = D; } } if (B.empty()) puts("-1"); else { cout << B.size() << endl; for (int i=0; i<B.size(); i++) cout << B[i] + 1 << " \n"[i == B.size()]; } }