結果
問題 | No.2495 Three Sets |
ユーザー | InTheBloom |
提出日時 | 2023-10-06 22:35:17 |
言語 | D (dmd 2.106.1) |
結果 |
TLE
|
実行時間 | - |
コード長 | 1,129 bytes |
コンパイル時間 | 3,743 ms |
コンパイル使用メモリ | 178,644 KB |
実行使用メモリ | 13,816 KB |
最終ジャッジ日時 | 2024-07-26 16:40:35 |
合計ジャッジ時間 | 8,989 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 1 ms
13,816 KB |
testcase_01 | AC | 1 ms
6,940 KB |
testcase_02 | AC | 1 ms
6,940 KB |
testcase_03 | AC | 1 ms
6,940 KB |
testcase_04 | AC | 1 ms
6,940 KB |
testcase_05 | AC | 1 ms
6,940 KB |
testcase_06 | AC | 1 ms
6,944 KB |
testcase_07 | AC | 1 ms
6,940 KB |
testcase_08 | AC | 1 ms
6,940 KB |
testcase_09 | AC | 58 ms
6,944 KB |
testcase_10 | AC | 472 ms
6,944 KB |
testcase_11 | AC | 213 ms
6,940 KB |
testcase_12 | AC | 574 ms
6,944 KB |
testcase_13 | TLE | - |
testcase_14 | -- | - |
testcase_15 | -- | - |
testcase_16 | -- | - |
testcase_17 | -- | - |
testcase_18 | -- | - |
testcase_19 | -- | - |
testcase_20 | -- | - |
ソースコード
import std; void main () { // なるたけどれもデカいほうが良い。部分集合といいつつ、削るなら最小要素から削るべき(要素数は負にならないので、できるだけでかい方がお得) // O(N^3)しかわからんけど... int[3] N; int[][3] X; readln.read(N[0], N[1], N[2]); X[0] = readln.split.to!(int[]); X[1] = readln.split.to!(int[]); X[2] = readln.split.to!(int[]); solve(N, X); } void solve (int[3] N, int[][3] X) { // O(N^3) foreach (ref x; X) x.sort!"a>b"; int[][3] sum; foreach (i, ref s; sum) s = new int[](N[i]+1); foreach (idx, ref s; sum) foreach (i, ref ss; s) { if (i == 0) { ss = 0; continue; } ss = s[i-1] + X[idx][i-1]; } long ans = -long.max; for (int i = 0; i <= N[0]; i++) for (int j = 0; j <= N[1]; j++) for (int k = 0; k <= N[2]; k++) { ans = max(ans, sum[0][i]*j + sum[1][j]*k + sum[2][k]*i); } writeln(ans); } void read(T...)(string S, ref T args) { auto buf = S.split; foreach (i, ref arg; args) { arg = buf[i].to!(typeof(arg)); } }