提出 #31867979


ソースコード 拡げる

using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Numerics;

namespace Tasks
{
    public class D
    {
        public static void Main()
        {
            var sw = new StreamWriter(Console.OpenStandardOutput()) { AutoFlush = false };
            Console.SetOut(sw);
            Solve();
            Console.Out.Flush();
        }

        public static void Solve()
        {
            var N = Scanner.Scan<int>();
            var A = Scanner.ScanEnumerable<int>().ToArray();
            var count = new int[(int)2e5 + 1];
            foreach (var a in A)
            {
                count[a]++;
            }

            var B = count.Where(x => x > 0).ToArray();
            var M = B.Length;

            var cumK = new long[M + 1];
            var cumJ = new long[M + 1];
            for (var k = M - 1; k >= 0; k--)
            {
                cumK[k] = B[k] + cumK[k + 1];
            }

            for (var j = M - 2; j >= 0; j--)
            {
                cumJ[j] = B[j] * cumK[j + 1] + cumJ[j + 1];
            }

            long answer = 0;
            for (var i = 0; i + 2 < M; i++)
            {
                answer += B[i] * cumJ[i + 1];
            }

            Console.WriteLine(answer);
        }

        public static class Scanner
        {
            public static string ScanLine() => Console.ReadLine()?.Trim() ?? string.Empty;
            public static string[] Scan() => ScanLine().Split(' ');
            public static T Scan<T>() where T : IConvertible => Convert<T>(Scan()[0]);
            public static (T1, T2) Scan<T1, T2>() where T1 : IConvertible where T2 : IConvertible
            {
                var line = Scan();
                return (Convert<T1>(line[0]), Convert<T2>(line[1]));
            }
            public static (T1, T2, T3) Scan<T1, T2, T3>() where T1 : IConvertible where T2 : IConvertible where T3 : IConvertible
            {
                var line = Scan();
                return (Convert<T1>(line[0]), Convert<T2>(line[1]), Convert<T3>(line[2]));
            }
            public static (T1, T2, T3, T4) Scan<T1, T2, T3, T4>() where T1 : IConvertible where T2 : IConvertible where T3 : IConvertible where T4 : IConvertible
            {
                var line = Scan();
                return (Convert<T1>(line[0]), Convert<T2>(line[1]), Convert<T3>(line[2]), Convert<T4>(line[3]));
            }
            public static (T1, T2, T3, T4, T5) Scan<T1, T2, T3, T4, T5>() where T1 : IConvertible where T2 : IConvertible where T3 : IConvertible where T4 : IConvertible where T5 : IConvertible
            {
                var line = Scan();
                return (Convert<T1>(line[0]), Convert<T2>(line[1]), Convert<T3>(line[2]), Convert<T4>(line[3]), Convert<T5>(line[4]));
            }
            public static (T1, T2, T3, T4, T5, T6) Scan<T1, T2, T3, T4, T5, T6>() where T1 : IConvertible where T2 : IConvertible where T3 : IConvertible where T4 : IConvertible where T5 : IConvertible where T6 : IConvertible
            {
                var line = Scan();
                return (Convert<T1>(line[0]), Convert<T2>(line[1]), Convert<T3>(line[2]), Convert<T4>(line[3]), Convert<T5>(line[4]), Convert<T6>(line[5]));
            }
            public static IEnumerable<T> ScanEnumerable<T>() where T : IConvertible => Scan().Select(Convert<T>);
            private static T Convert<T>(string value) where T : IConvertible => (T)System.Convert.ChangeType(value, typeof(T));
        }
    }
}

提出情報

提出日時
問題 D - Distinct Trio
ユーザ AconCavy
言語 C# (.NET Core 3.1.201)
得点 400
コード長 3641 Byte
結果 AC
実行時間 128 ms
メモリ 53036 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 400 / 400
結果
AC × 3
AC × 23
セット名 テストケース
Sample sample_01.txt, sample_02.txt, sample_03.txt
All random_01.txt, random_02.txt, random_03.txt, random_04.txt, random_05.txt, random_06.txt, random_07.txt, random_08.txt, random_09.txt, random_10.txt, random_11.txt, random_12.txt, random_13.txt, random_14.txt, random_15.txt, random_16.txt, random_17.txt, random_18.txt, random_19.txt, random_20.txt, sample_01.txt, sample_02.txt, sample_03.txt
ケース名 結果 実行時間 メモリ
random_01.txt AC 88 ms 28592 KiB
random_02.txt AC 106 ms 43796 KiB
random_03.txt AC 85 ms 28740 KiB
random_04.txt AC 119 ms 49220 KiB
random_05.txt AC 83 ms 28692 KiB
random_06.txt AC 85 ms 29164 KiB
random_07.txt AC 88 ms 28608 KiB
random_08.txt AC 91 ms 33200 KiB
random_09.txt AC 82 ms 28256 KiB
random_10.txt AC 103 ms 36700 KiB
random_11.txt AC 83 ms 28964 KiB
random_12.txt AC 90 ms 32748 KiB
random_13.txt AC 76 ms 28404 KiB
random_14.txt AC 91 ms 34568 KiB
random_15.txt AC 80 ms 28964 KiB
random_16.txt AC 105 ms 41092 KiB
random_17.txt AC 119 ms 53036 KiB
random_18.txt AC 83 ms 27928 KiB
random_19.txt AC 128 ms 48208 KiB
random_20.txt AC 79 ms 28004 KiB
sample_01.txt AC 87 ms 28032 KiB
sample_02.txt AC 87 ms 28004 KiB
sample_03.txt AC 82 ms 28032 KiB