提出 #51877156


ソースコード 拡げる

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

namespace Tasks;

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

    public static void Solve()
    {
        var (N, Q) = Scanner.Scan<int, int>();
        var X = Scanner.ScanEnumerable<int>().ToArray();
        var A = new long[N];
        var S = new Dictionary<int, int>();
        var cum = new long[Q + 1];
        for (var i = 0; i < Q; i++)
        {
            var x = X[i];
            if (S.ContainsKey(x))
            {
                A[x - 1] += cum[i] - cum[S[x]];
                S.Remove(x);
            }
            else
            {
                S[x] = i;
            }

            cum[i + 1] = cum[i] + S.Count;
            // A[X[i] - 1] += S.Count;

            // Console.WriteLine(string.Join(" ", A));
        }

        foreach (var (x, i) in S)
        {
            A[x - 1] += cum[Q] - cum[i];
        }

        Console.WriteLine(string.Join(" ", A));
    }

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

提出情報

提出日時
問題 E - Set Add Query
ユーザ AconCavy
言語 C# 11.0 (.NET 7.0.7)
得点 500
コード長 3582 Byte
結果 AC
実行時間 136 ms
メモリ 72096 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 500 / 500
結果
AC × 2
AC × 24
セット名 テストケース
Sample 00_sample_01.txt, 00_sample_02.txt
All 00_sample_01.txt, 00_sample_02.txt, 01_test_01.txt, 01_test_02.txt, 01_test_03.txt, 01_test_04.txt, 01_test_05.txt, 01_test_06.txt, 01_test_07.txt, 01_test_08.txt, 01_test_09.txt, 01_test_10.txt, 01_test_11.txt, 01_test_12.txt, 01_test_13.txt, 01_test_14.txt, 01_test_15.txt, 01_test_16.txt, 01_test_17.txt, 01_test_18.txt, 01_test_19.txt, 01_test_20.txt, 01_test_21.txt, 01_test_22.txt
ケース名 結果 実行時間 メモリ
00_sample_01.txt AC 55 ms 27276 KiB
00_sample_02.txt AC 60 ms 26944 KiB
01_test_01.txt AC 53 ms 27176 KiB
01_test_02.txt AC 87 ms 43576 KiB
01_test_03.txt AC 106 ms 57544 KiB
01_test_04.txt AC 106 ms 57624 KiB
01_test_05.txt AC 111 ms 57788 KiB
01_test_06.txt AC 135 ms 58068 KiB
01_test_07.txt AC 131 ms 58236 KiB
01_test_08.txt AC 127 ms 57936 KiB
01_test_09.txt AC 132 ms 58236 KiB
01_test_10.txt AC 126 ms 57948 KiB
01_test_11.txt AC 128 ms 58052 KiB
01_test_12.txt AC 132 ms 57936 KiB
01_test_13.txt AC 126 ms 58148 KiB
01_test_14.txt AC 129 ms 57988 KiB
01_test_15.txt AC 132 ms 57944 KiB
01_test_16.txt AC 82 ms 43744 KiB
01_test_17.txt AC 88 ms 43596 KiB
01_test_18.txt AC 83 ms 43700 KiB
01_test_19.txt AC 84 ms 43540 KiB
01_test_20.txt AC 92 ms 43840 KiB
01_test_21.txt AC 118 ms 71980 KiB
01_test_22.txt AC 136 ms 72096 KiB