結果

問題 No.412 花火大会
ユーザー noriocnorioc
提出日時 2016-08-13 12:59:27
言語 C#(csc)
(csc 3.9.0)
結果
AC  
実行時間 32 ms / 2,000 ms
コード長 1,202 bytes
コンパイル時間 1,089 ms
コンパイル使用メモリ 112,248 KB
実行使用メモリ 19,456 KB
最終ジャッジ日時 2024-04-25 06:29:11
合計ジャッジ時間 3,080 ms
ジャッジサーバーID
(参考情報)
judge1 / judge4
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 31 ms
19,200 KB
testcase_01 AC 30 ms
19,328 KB
testcase_02 AC 31 ms
19,072 KB
testcase_03 AC 30 ms
19,072 KB
testcase_04 AC 29 ms
19,072 KB
testcase_05 AC 29 ms
19,328 KB
testcase_06 AC 30 ms
19,200 KB
testcase_07 AC 32 ms
19,456 KB
testcase_08 AC 30 ms
19,328 KB
testcase_09 AC 29 ms
19,200 KB
testcase_10 AC 29 ms
19,200 KB
testcase_11 AC 31 ms
19,072 KB
testcase_12 AC 30 ms
19,072 KB
testcase_13 AC 32 ms
19,072 KB
testcase_14 AC 30 ms
19,200 KB
testcase_15 AC 32 ms
19,200 KB
testcase_16 AC 32 ms
19,200 KB
testcase_17 AC 29 ms
19,200 KB
testcase_18 AC 29 ms
19,200 KB
testcase_19 AC 32 ms
19,072 KB
testcase_20 AC 29 ms
19,072 KB
testcase_21 AC 31 ms
19,328 KB
権限があれば一括ダウンロードができます
コンパイルメッセージ
Microsoft (R) Visual C# Compiler version 3.9.0-6.21124.20 (db94f4cc)
Copyright (C) Microsoft Corporation. All rights reserved.

ソースコード

diff #

using System;
using System.Collections.Generic;
using System.Linq;

class Program {
    static string ReadLine() { return Console.ReadLine(); }
    static int ReadInt() { return int.Parse(ReadLine()); }
    static int[] ReadInts() { return ReadLine().Split().Select(int.Parse).ToArray(); }
    static string[] ReadStrings() { return ReadLine().Split(); }

    static int Calc(int[] bcd, int n, int[] xs) {
        Array.Sort(bcd);
        Array.Sort(xs);

        var dp = new int[n + 1, 4];
        dp[0, 0] = 1;
        for (int i = 0; i < xs.Length; i++) { // i 番目のレジャーシート

            for (int j = 0; j <= 3; j++) {
                dp[i + 1, j] += dp[i, j]; // i 番目を選択しない

                // i 番目を選択する
                if (j < 3 && bcd[j] <= xs[i]) {
                    dp[i + 1, j + 1] += dp[i, j];
                }
                else {
                    dp[i + 1, j] += dp[i, j];
                }
            }
        }
        return dp[n, 3];
    }

    static void Main() {
        var bcd = ReadInts();
        int n = ReadInt();
        var xs = ReadInts();

        var ans = Calc(bcd, n, xs);
        Console.WriteLine(ans);
    }
}
0