提出 #43646845


ソースコード 拡げる

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()
        {
            using var sw = new StreamWriter(Console.OpenStandardOutput()) { AutoFlush = false };
            Console.SetOut(sw);
            Solve();
            Console.Out.Flush();
        }

        public static void Solve()
        {
            var (N, T, M) = Scanner.Scan<int, int, int>();
            var hates = new int[N];
            for (var i = 0; i < M; i++)
            {
                var (a, b) = Scanner.Scan<int, int>();
                a--; b--;
                hates[a] |= 1 << b;
                hates[b] |= 1 << a;
            }

            var teams = new List<int>(T);
            int Dfs(int i)
            {
                if (i == N)
                {
                    return teams.Count == T ? 1 : 0;
                }

                var sum = 0;
                for (var t = 0; t < teams.Count; t++)
                {
                    if ((teams[t] & hates[i]) != 0) continue;
                    teams[t] += 1 << i;
                    sum += Dfs(i + 1);
                    teams[t] -= 1 << i;
                }

                if (teams.Count < T)
                {
                    teams.Add(1 << i);
                    sum += Dfs(i + 1);
                    teams.RemoveAt(teams.Count - 1);
                }

                return sum;
            }

            var answer = Dfs(0);
            Console.WriteLine(answer);
        }

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

提出情報

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

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 400 / 400
結果
AC × 4
AC × 49
セット名 テストケース
Sample 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt
All 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt, 01_random_04.txt, 01_random_05.txt, 01_random_06.txt, 01_random_07.txt, 01_random_08.txt, 01_random_09.txt, 01_random_10.txt, 01_random_11.txt, 01_random_12.txt, 01_random_13.txt, 01_random_14.txt, 01_random_15.txt, 01_random_16.txt, 01_random_17.txt, 02_handmade_18.txt, 02_handmade_19.txt, 02_handmade_20.txt, 02_handmade_21.txt, 02_handmade_22.txt, 02_handmade_23.txt, 02_handmade_24.txt, 02_handmade_25.txt, 02_handmade_26.txt, 02_handmade_27.txt, 02_handmade_28.txt, 02_handmade_29.txt, 02_handmade_30.txt, 02_handmade_31.txt, 03_small_32.txt, 03_small_33.txt, 03_small_34.txt, 03_small_35.txt, 03_small_36.txt, 03_small_37.txt, 03_small_38.txt, 03_small_39.txt, 03_small_40.txt, 03_small_41.txt, 03_small_42.txt, 03_small_43.txt, 03_small_44.txt, 03_small_45.txt, 03_small_46.txt, 03_small_47.txt, 03_small_48.txt
ケース名 結果 実行時間 メモリ
00_sample_00.txt AC 98 ms 27284 KiB
00_sample_01.txt AC 74 ms 27460 KiB
00_sample_02.txt AC 81 ms 27520 KiB
00_sample_03.txt AC 82 ms 27260 KiB
01_random_04.txt AC 89 ms 27648 KiB
01_random_05.txt AC 89 ms 27468 KiB
01_random_06.txt AC 81 ms 27468 KiB
01_random_07.txt AC 81 ms 27464 KiB
01_random_08.txt AC 78 ms 27476 KiB
01_random_09.txt AC 81 ms 27244 KiB
01_random_10.txt AC 79 ms 27260 KiB
01_random_11.txt AC 82 ms 27528 KiB
01_random_12.txt AC 81 ms 27468 KiB
01_random_13.txt AC 85 ms 27372 KiB
01_random_14.txt AC 91 ms 27788 KiB
01_random_15.txt AC 81 ms 27528 KiB
01_random_16.txt AC 78 ms 27368 KiB
01_random_17.txt AC 91 ms 27632 KiB
02_handmade_18.txt AC 84 ms 27464 KiB
02_handmade_19.txt AC 82 ms 27596 KiB
02_handmade_20.txt AC 78 ms 27776 KiB
02_handmade_21.txt AC 86 ms 27456 KiB
02_handmade_22.txt AC 79 ms 27780 KiB
02_handmade_23.txt AC 86 ms 27484 KiB
02_handmade_24.txt AC 83 ms 27468 KiB
02_handmade_25.txt AC 80 ms 27468 KiB
02_handmade_26.txt AC 85 ms 27636 KiB
02_handmade_27.txt AC 79 ms 27328 KiB
02_handmade_28.txt AC 81 ms 27496 KiB
02_handmade_29.txt AC 82 ms 27496 KiB
02_handmade_30.txt AC 82 ms 27300 KiB
02_handmade_31.txt AC 85 ms 27428 KiB
03_small_32.txt AC 82 ms 27476 KiB
03_small_33.txt AC 73 ms 27460 KiB
03_small_34.txt AC 76 ms 27480 KiB
03_small_35.txt AC 86 ms 27328 KiB
03_small_36.txt AC 81 ms 27496 KiB
03_small_37.txt AC 81 ms 27380 KiB
03_small_38.txt AC 82 ms 27372 KiB
03_small_39.txt AC 82 ms 27448 KiB
03_small_40.txt AC 82 ms 27472 KiB
03_small_41.txt AC 82 ms 27464 KiB
03_small_42.txt AC 78 ms 27272 KiB
03_small_43.txt AC 78 ms 27468 KiB
03_small_44.txt AC 83 ms 27736 KiB
03_small_45.txt AC 89 ms 27732 KiB
03_small_46.txt AC 85 ms 27372 KiB
03_small_47.txt AC 79 ms 27452 KiB
03_small_48.txt AC 81 ms 27492 KiB