提出 #46552389


ソースコード 拡げる

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 = Scanner.Scan<int>();
        var S = Scanner.Scan<string>();
        var CS = new int[10];

        foreach (var c in S.Select(x => x - '0')) CS[c]++;

        var MAX = (long)1e13;

        var sqrs = new List<long>();
        long v = 0;
        while (v * v <= MAX)
        {
            sqrs.Add(v * v);
            v++;
        }

        long answer = 0;
        foreach (var x in sqrs)
        {
            var CT = new int[10];
            var y = x;
            while (y > 0)
            {
                CT[(int)(y % 10)]++;
                y /= 10;
            }

            var ok = true;
            for (var i = 0; i < 10 && ok; i++)
            {
                if (i == 0)
                {
                    ok &= CS[i] >= CT[i];
                }
                else
                {
                    ok &= CS[i] == CT[i];
                }
            }

            if (ok) answer++;
        }

        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 - Square Permutation
ユーザ AconCavy
言語 C# 11.0 (.NET 7.0.7)
得点 425
コード長 3785 Byte
結果 AC
実行時間 273 ms
メモリ 112120 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 425 / 425
結果
AC × 3
AC × 46
セット名 テストケース
Sample 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt
All 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 01_random_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, 01_random_18.txt, 01_random_19.txt, 01_random_20.txt, 01_random_21.txt, 01_random_22.txt, 02_max_23.txt, 02_max_24.txt, 02_max_25.txt, 02_max_26.txt, 02_max_27.txt, 02_max_28.txt, 02_max_29.txt, 02_max_30.txt, 02_max_31.txt, 02_max_32.txt, 02_max_33.txt, 02_max_34.txt, 02_max_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
ケース名 結果 実行時間 メモリ
00_sample_00.txt AC 259 ms 112080 KiB
00_sample_01.txt AC 267 ms 111896 KiB
00_sample_02.txt AC 261 ms 112108 KiB
01_random_03.txt AC 258 ms 112112 KiB
01_random_04.txt AC 248 ms 111820 KiB
01_random_05.txt AC 251 ms 111836 KiB
01_random_06.txt AC 263 ms 111844 KiB
01_random_07.txt AC 260 ms 112112 KiB
01_random_08.txt AC 239 ms 112052 KiB
01_random_09.txt AC 250 ms 111808 KiB
01_random_10.txt AC 258 ms 112112 KiB
01_random_11.txt AC 256 ms 111900 KiB
01_random_12.txt AC 259 ms 111804 KiB
01_random_13.txt AC 242 ms 112120 KiB
01_random_14.txt AC 267 ms 111860 KiB
01_random_15.txt AC 256 ms 112120 KiB
01_random_16.txt AC 254 ms 111820 KiB
01_random_17.txt AC 254 ms 111816 KiB
01_random_18.txt AC 257 ms 111832 KiB
01_random_19.txt AC 245 ms 111788 KiB
01_random_20.txt AC 255 ms 111816 KiB
01_random_21.txt AC 245 ms 111836 KiB
01_random_22.txt AC 272 ms 111816 KiB
02_max_23.txt AC 272 ms 112028 KiB
02_max_24.txt AC 264 ms 112084 KiB
02_max_25.txt AC 273 ms 111904 KiB
02_max_26.txt AC 256 ms 112060 KiB
02_max_27.txt AC 264 ms 111976 KiB
02_max_28.txt AC 247 ms 111820 KiB
02_max_29.txt AC 272 ms 111800 KiB
02_max_30.txt AC 257 ms 111828 KiB
02_max_31.txt AC 247 ms 112088 KiB
02_max_32.txt AC 242 ms 111776 KiB
02_max_33.txt AC 245 ms 111956 KiB
02_max_34.txt AC 254 ms 111820 KiB
02_max_35.txt AC 243 ms 112076 KiB
03_small_36.txt AC 258 ms 111960 KiB
03_small_37.txt AC 266 ms 111836 KiB
03_small_38.txt AC 250 ms 112096 KiB
03_small_39.txt AC 253 ms 111964 KiB
03_small_40.txt AC 248 ms 112080 KiB
03_small_41.txt AC 242 ms 112024 KiB
03_small_42.txt AC 242 ms 112108 KiB
03_small_43.txt AC 254 ms 112116 KiB
03_small_44.txt AC 247 ms 112020 KiB
03_small_45.txt AC 251 ms 112020 KiB