結果
| 問題 |
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;
}