結果
問題 |
No.2495 Three Sets
|
ユーザー |
|
提出日時 | 2023-10-12 17:47:37 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 950 bytes |
コンパイル時間 | 4,388 ms |
コンパイル使用メモリ | 253,972 KB |
最終ジャッジ日時 | 2025-02-17 06:50:39 |
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 8 WA * 2 TLE * 1 -- * 7 |
ソースコード
#include <bits/stdc++.h> #include <atcoder/all> using namespace std; using ll = long long; #define rep(i,n) for(int i=0;i<(int)(n);i++) using mint = atcoder::modint998244353; int main(){ int na,nb,nc; cin>>na>>nb>>nc; vector<int> a(na),b(nb),c(nc); rep(i,na) cin>>a.at(i); rep(i,nb) cin>>b.at(i); rep(i,nc) cin>>c.at(i); sort(a.begin(),a.end()); sort(b.begin(),b.end()); sort(c.begin(),c.end()); reverse(a.begin(),a.end()); reverse(b.begin(),b.end()); reverse(c.begin(),c.end()); vector<ll> sma(na+1); rep(i,na) sma.at(i+1)=sma.at(i)+a.at(i); ll ans=0; ll smb=0; rep(bb,nb+1){ ll smc=0; rep(cc,nc+1){ int aa; if(bb==0) aa=na; else{ auto itr=lower_bound(a.begin(),a.end(),-smc/bb,[&](int x,int y){ return x > y; }); aa=itr-a.begin(); } ll tmp=sma.at(aa)*bb+smb*cc+smc*aa; ans=max(ans,tmp); if(cc==nc) break; smc+=c.at(cc); } if(bb==nb) break; smb+=b.at(bb); } cout<<ans<<endl; }