結果
問題 | No.2495 Three Sets |
ユーザー |
👑 |
提出日時 | 2023-09-05 17:23:07 |
言語 | cLay (20241019-1) |
結果 |
AC
|
実行時間 | 472 ms / 3,000 ms |
コード長 | 552 bytes |
コンパイル時間 | 3,110 ms |
コンパイル使用メモリ | 182,300 KB |
実行使用メモリ | 6,944 KB |
最終ジャッジ日時 | 2024-06-24 03:12:02 |
合計ジャッジ時間 | 5,800 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 18 |
ソースコード
ll@N[3],B=3000,W=6002,L[3],S[3][W],U[3][W],C[W]={B},X[W],a=0,l,m,r;rep(n,3){S[n][0]=U[n][0]=0;L[n]=1;map<ll,ll>A{};A[-B];REP(N[n]){ll@x;A[-x]++;}for(auto i=A.begin(),e=A.end();i!=e;i++){S[n][L[n]]=S[n][L[n]-1]+i->second;U[n][L[n]]=U[n][L[n]-1]-i->first*i->second;if(n>1)C[L[n]]=-i->first;L[n]++;}}rep(x,W){l=0;r=L[2];while(l+1<r)(C[m=(l+r)/2]>=x-B?l:r)=m;X[x]=l;}REP(i,L[0]){REP(j,L[1]){if(U[1][j]+B*S[0][i]>=0){if(S[0][i]<1)m=L[2]-1;else{r=max(0,-U[1][j]/S[0][i]+B);m=r<W?X[r]:0;}if(m)a=max(a,U[0][i]*S[1][j]+U[1][j]*S[2][m]+U[2][m]*S[0][i]);}}}wt(a);