結果
問題 |
No.2364 Knapsack Problem
|
ユーザー |
|
提出日時 | 2023-07-02 15:48:42 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 860 bytes |
コンパイル時間 | 637 ms |
コンパイル使用メモリ | 71,808 KB |
実行使用メモリ | 6,948 KB |
最終ジャッジ日時 | 2024-07-16 11:36:53 |
合計ジャッジ時間 | 1,918 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 18 WA * 2 |
ソースコード
#include <iostream> #include <vector> using namespace std; int main() { int N, M, W; cin >> N >> M >> W; vector<int> A(N), C(M); vector<long long> B(N), D(M); for ( int i=0; i<N; i++ ) cin >> A[i]; for ( int i=0; i<N; i++ ) cin >> B[i]; for ( int i=0; i<M; i++ ) cin >> C[i]; for ( int i=0; i<M; i++ ) cin >> D[i]; long long ans = 0; for ( int i=0; i<(1<<(N+M)); i++ ) { long long v = 0; int w = 0; for ( int j=0; j<N+M; j++ ) { if ( i & ( 1 << j ) ) { if ( j < N ) { w += A[j]; v += B[j]; } else { w -= C[ j - N ]; v -= D[ j - N ]; } } } if ( 0 <= w && w <= W && ans <= v ) ans = v; } cout << ans << endl; }