提出 #47702938


ソースコード 拡げる

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

namespace Tasks;

public class F
{
    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 C = Scanner.ScanEnumerable<int>().ToArray();
        var set = new HashSet<int>[N].Select(_ => new HashSet<int>()).ToArray();
        for (var i = 0; i < N; i++)
        {
            set[i].Add(C[i]);
        }
        while (Q-- > 0)
        {
            var (a, b) = Scanner.Scan<int, int>();
            a--; b--;
            if (set[b].Count < set[a].Count)
            {
                (set[a], set[b]) = (set[b], set[a]);
            }
            foreach (var v in set[a])
            {
                set[b].Add(v);
            }

            set[a].Clear();
            Console.WriteLine(set[b].Count);
        }
    }

    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));
    }
}

提出情報

提出日時
問題 F - Colored Ball
ユーザ AconCavy
言語 C# 11.0 (.NET 7.0.7)
得点 500
コード長 3472 Byte
結果 AC
実行時間 426 ms
メモリ 131276 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 500 / 500
結果
AC × 2
AC × 44
セット名 テストケース
Sample sample00.txt, sample01.txt
All sample00.txt, sample01.txt, testcase00.txt, testcase01.txt, testcase02.txt, testcase03.txt, testcase04.txt, testcase05.txt, testcase06.txt, testcase07.txt, testcase08.txt, testcase09.txt, testcase10.txt, testcase11.txt, testcase12.txt, testcase13.txt, testcase14.txt, testcase15.txt, testcase16.txt, testcase17.txt, testcase18.txt, testcase19.txt, testcase20.txt, testcase21.txt, testcase22.txt, testcase23.txt, testcase24.txt, testcase25.txt, testcase26.txt, testcase27.txt, testcase28.txt, testcase29.txt, testcase30.txt, testcase31.txt, testcase32.txt, testcase33.txt, testcase34.txt, testcase35.txt, testcase36.txt, testcase37.txt, testcase38.txt, testcase39.txt, testcase40.txt, testcase41.txt
ケース名 結果 実行時間 メモリ
sample00.txt AC 49 ms 26692 KiB
sample01.txt AC 51 ms 26628 KiB
testcase00.txt AC 255 ms 122588 KiB
testcase01.txt AC 259 ms 122628 KiB
testcase02.txt AC 321 ms 126488 KiB
testcase03.txt AC 298 ms 129000 KiB
testcase04.txt AC 343 ms 130860 KiB
testcase05.txt AC 317 ms 127120 KiB
testcase06.txt AC 306 ms 123548 KiB
testcase07.txt AC 297 ms 125140 KiB
testcase08.txt AC 327 ms 126560 KiB
testcase09.txt AC 318 ms 131140 KiB
testcase10.txt AC 330 ms 130712 KiB
testcase11.txt AC 328 ms 131144 KiB
testcase12.txt AC 242 ms 107100 KiB
testcase13.txt AC 301 ms 108300 KiB
testcase14.txt AC 248 ms 115460 KiB
testcase15.txt AC 298 ms 126900 KiB
testcase16.txt AC 313 ms 103952 KiB
testcase17.txt AC 299 ms 126832 KiB
testcase18.txt AC 260 ms 118124 KiB
testcase19.txt AC 290 ms 126824 KiB
testcase20.txt AC 280 ms 126952 KiB
testcase21.txt AC 304 ms 126828 KiB
testcase22.txt AC 295 ms 126928 KiB
testcase23.txt AC 292 ms 126836 KiB
testcase24.txt AC 300 ms 126812 KiB
testcase25.txt AC 283 ms 126884 KiB
testcase26.txt AC 237 ms 117156 KiB
testcase27.txt AC 305 ms 126792 KiB
testcase28.txt AC 245 ms 115168 KiB
testcase29.txt AC 293 ms 126960 KiB
testcase30.txt AC 246 ms 116660 KiB
testcase31.txt AC 284 ms 126660 KiB
testcase32.txt AC 292 ms 126788 KiB
testcase33.txt AC 286 ms 126876 KiB
testcase34.txt AC 261 ms 117800 KiB
testcase35.txt AC 304 ms 126736 KiB
testcase36.txt AC 303 ms 126476 KiB
testcase37.txt AC 298 ms 126864 KiB
testcase38.txt AC 249 ms 114552 KiB
testcase39.txt AC 287 ms 126876 KiB
testcase40.txt AC 414 ms 127564 KiB
testcase41.txt AC 426 ms 131276 KiB