結果

問題 No.118 門松列(2)
ユーザー norioc
提出日時 2017-09-05 01:11:06
言語 D
(dmd 2.109.1)
結果
AC  
実行時間 12 ms / 5,000 ms
コード長 715 bytes
コンパイル時間 854 ms
コンパイル使用メモリ 103,500 KB
実行使用メモリ 6,948 KB
最終ジャッジ日時 2024-06-12 21:49:20
合計ジャッジ時間 1,994 ms
ジャッジサーバーID
(参考情報)
judge5 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 26
権限があれば一括ダウンロードができます

ソースコード

diff #

import std.algorithm;
import std.array;
import std.conv;
import std.math;
import std.range;
import std.stdio;
import std.string;
import std.typecons;

int readint() {
    return readln.chomp.to!int;
}

int[] readints() {
    return readln.split.map!(to!int).array;
}

long calc(int[] xs) {
    const MOD = 1_000_000_007;

    long[101] sum;
    foreach (x; xs)
        sum[x]++;

    long ans = 0;
    for (int i = 1; i <= 100; i++) {
        for (int j = i + 1; j <= 100; j++) {
            for (int k = j + 1; k <= 100; k++) {
                ans = (ans + sum[i] * sum[j] * sum[k]) % MOD;
            }
        }
    }
    return ans;
}

void main() {
    readln;
    auto xs = readints;
    writeln(calc(xs));
}
0