結果
問題 | No.2730 Two Types Luggage |
ユーザー |
|
提出日時 | 2024-04-19 21:43:06 |
言語 | C++23 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 275 ms / 2,000 ms |
コード長 | 1,587 bytes |
コンパイル時間 | 3,055 ms |
コンパイル使用メモリ | 258,264 KB |
実行使用メモリ | 18,876 KB |
最終ジャッジ日時 | 2024-10-11 14:33:38 |
合計ジャッジ時間 | 9,789 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 35 |
ソースコード
#pragma region template#include<bits/stdc++.h>using namespace std;#include <atcoder/modint>using namespace atcoder;using mint=modint998244353;template<class T>inline bool chmax(T &a,T b){if(a<b){a=b;return true;}return false;}template<class T>inline bool chmin(T &a,T b){if(a>b){a=b;return true;}return false;}#define rep1(i,a) for(int i=0;i<(int)(a);i++)#define rep2(i,a,b) for(int i =(int)(a);i<(int)(b);i++)#define rep3(i,a,b,c) for(int i=(int)(a);i<(int)(b);i+=(int)(c))#define overloadRep(a,b,c,d,e,...)e#define rep(...) overloadRep(__VA_ARGS__,rep3,rep2,rep1)(__VA_ARGS__)#define rrep(i,a,b) for(int i=(int)(a);i<=(int)(b);i++)#define drep(i,a,b) for(int i=(int)(a);i>=(int)(b);i--)#define all(a) a.begin(),a.end()#define rall(a) a.rbegin(),a.rend()#define spa " "#define yes "Yes"#define no "No"#define int long longconst int inf=8e18;const int dx[4]={0,1,0,-1};const int dy[4]={1,0,-1,0};using P=pair<int,int>;using T=tuple<int,int,int>;bool bit(int &x,int &p){return (x>>p)&1;}#pragma endregionsigned main(){ios_base::sync_with_stdio(false);cin.tie(nullptr);cout<<fixed<<setprecision(15);int n,m,w;cin>>n>>m>>w;vector<int>a(n),b(m),c(m);rep(i,n)cin>>a[i];rep(i,m)cin>>b[i];rep(i,m)cin>>c[i];vector<int>s(n+1);sort(rall(a));rep(i,n)s[i+1]+=s[i]+a[i];int ans=0;rep(i,1<<m){int nw=0,nv=0;rep(j,m)if(bit(i,j)){nw+=b[j];nv+=c[j];}if(nw>w)continue;int x=w-nw;x=min(x,n);nv+=s[x];chmax(ans,nv);}cout<<ans<<endl;return 0;}