結果

問題 No.1233 割り切れない気持ち
コンテスト
ユーザー 👑 tttmmmyyyy
提出日時 2026-11-01 22:58:25
言語 Fix
(1.6.0 + cp-library + minilib)
コンパイル:
fix_c _filename_
実行:
./a.out
結果
AC  
実行時間 196 ms / 3,153 ms
+ 947µs
コード長 985 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 12,074 ms
コンパイル使用メモリ 671,544 KB
実行使用メモリ 9,872 KB
最終ジャッジ日時 2026-11-01 22:59:02
合計ジャッジ時間 17,388 ms
ジャッジサーバーID
(参考情報)
judge3_0 / judge2_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 2
other AC * 39
権限があれば一括ダウンロードができます
コンパイルメッセージ
make: 'lib.o' は更新済みです.

ソースコード

diff #
raw source code

module Main;

import BinaryHeap;
import BoolArray;
import CPLib.Arithmetic;
import CPLib.DSegtree;
import CPLib.Graph;
import CPLib.IO;
import CPLib.LDSegtree;
import CPLib.UnionFind;
import CPLib.ZP;
import HashMap;
import HashSet;

main : IO () = (
    let n = *read_i;
    let as = *read_is(n);
    let bs = range(0, n).fold([0], |i, bs| let a = as.@(i); let b = bs.@(i); bs.push_back(a + b));
    let as = as.sort;
    let ans_for : I64 -> I64 = |a| (
        let sum_n = count_up(1).map(|n|
            let i = as.search_partition_point(|b| b < a * n);
            // eval "n - i = {}".debug_eprintfln((n - i,));
            (as.@size - i)
        ).take_while(|x| x > 0).sum;
        bs.@(n) - sum_n * a
    );
    let anss = range(0, n).fold([], |i, anss|
        let ans = if i > 0 && as.@(i-1) == as.@(i) {
            anss.@(anss.@size - 1)
        } else {
            ans_for(as.@(i))
        };
        anss.push_back(ans)
    );
    anss.to_iter.sum.to_string.println
);
0