結果
問題 |
No.2495 Three Sets
|
ユーザー |
|
提出日時 | 2023-10-06 21:51:33 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 945 bytes |
コンパイル時間 | 2,329 ms |
コンパイル使用メモリ | 202,376 KB |
最終ジャッジ日時 | 2025-02-17 04:59:56 |
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 5 WA * 13 |
ソースコード
#include <bits/stdc++.h> using namespace std; int main() { int Na, Nb, Nc; cin >> Na >> Nb >> Nc; vector<pair<int, int>> S; for (int i = 0; i < Na; i++){ int A; cin >> A; S.push_back(make_pair(A, 0)); } for (int i = 0; i < Nb; i++){ int B; cin >> B; S.push_back(make_pair(B, 1)); } for (int i = 0; i < Nc; i++){ int C; cin >> C; S.push_back(make_pair(C, 2)); } int Sa = 0, Sb = 0, Sc = 0, A = 0, B = 0, C = 0; sort(S.rbegin(), S.rend()); long long ans = 0; for (int i = 0; i < Na + Nb + Nc; i++){ auto [p, n] = S[i]; if (n == 0){ Sa++; A += p; } if (n == 1){ Sb++; B += p; } if (n == 2){ Sc++; C += p; } long long m = (long long) A * Sb + (long long) B * Sc + (long long) C * Sa; if (ans <= m){ ans = m; } else { if (n == 0){ Sa--; A -= p; } if (n == 1){ Sb--; B -= p; } if (n == 2){ Sc--; C -= p; } } } cout << ans << endl; }