結果

問題 No.1060 素敵な宝箱
コンテスト
ユーザー 👑 tttmmmyyyy
提出日時 2026-10-28 21:31:52
言語 Fix
(1.6.0 + cp-library + minilib)
コンパイル:
fix_c _filename_
実行:
./a.out
結果
AC  
実行時間 2 ms / 2,000 ms
+ 586µs
コード長 1,007 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 12,511 ms
コンパイル使用メモリ 670,388 KB
実行使用メモリ 9,868 KB
最終ジャッジ日時 2026-10-28 21:32:13
合計ジャッジ時間 15,655 ms
ジャッジサーバーID
(参考情報)
judge7_0 / judge3_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 24
権限があれば一括ダウンロードができます
コンパイルメッセージ
make: 'lib.o' は更新済みです.

ソースコード

diff #
raw source code

module Main;

import CPLib.IO;

main : IO () = (
    let n = *read_i;
    let m = *read_i;
    // iが宝箱、jが宝石
    let aij = fill(n, fill(m, 0));
    let aij = *range(0, n).fold_m(aij, |i, aij|
        range(0, m).fold_m(aij, |j, aij|
            let a = *read_i;
            let aij = aij[i][j].iset(a);
            aij.pure
        )
    );
    let jewel_num = fill(m, 0);
    let jewel_num = range(0, n).fold(jewel_num, |i, jewel_num|
        range(0, m).fold(jewel_num, |j, jewel_num|
            let a = aij[i][j].iget;
            jewel_num[j].imod(add(a))
        )
    );
    let gain = fill(n, 0);
    let gain = range(0, n).fold(gain, |i, gain|
        range(0, m).fold(gain, |j, gain|
            let a = aij[i][j].iget;
            gain[i].imod(add(a * jewel_num[j].iget))
        )
    );
    let gain = gain.sort;
    let y = range(0, n/2).map(|i| gain.@(2*i)).sum;
    let x = range(0, n/2).map(|i| gain.@(2*i+1)).sum;
    let ans = x - y;
    ans.to_string.println;;
    pure()
);
0