結果
問題 | No.2686 商品券の使い道 |
ユーザー |
![]() |
提出日時 | 2024-03-01 08:12:13 |
言語 | C++23 (gcc 13.3.0 + boost 1.87.0) |
結果 |
TLE
|
実行時間 | - |
コード長 | 922 bytes |
コンパイル時間 | 2,957 ms |
コンパイル使用メモリ | 251,108 KB |
実行使用メモリ | 13,640 KB |
最終ジャッジ日時 | 2024-09-30 05:08:12 |
合計ジャッジ時間 | 25,914 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 28 TLE * 1 -- * 19 |
ソースコード
#include <bits/stdc++.h>using namespace std;#pragma GCC target("avx2")#pragma GCC optimize("O3")#pragma GCC optimize("unroll-loops")using ll = long long;const ll INF = 1e18;//O(3^n)int main(){ll n,m,q;cin >> n >> m >> q;vector<ll> a(n),b(n);for(ll i = 0;i < n;i++){cin >> a[i] >> b[i];}ll msum = 0,qsum = 0,val = 0,ans = 0;auto rec = [&](auto &rec,ll i) -> void {if(i==n){ans = max(ans,val);return;}rec(rec,i+1);if(msum+a[i] <= m){msum += a[i];val += b[i];rec(rec,i+1);msum -= a[i];val -= b[i];}if(qsum+a[i] <= q){qsum += a[i];val += b[i];rec(rec,i+1);qsum -= a[i];val -= b[i];}return;};rec(rec,0);cout << ans << endl;}