提出 #32245869


ソースコード 拡げる

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<long>();
            var sq = new bool[N + 1];
            for (var i = 1; i * i <= N; i++)
            {
                sq[i * i] = true;
            }

            var count = new long[N + 1];
            for (var i = 1; i <= N; i++)
            {
                long j = 0;
                foreach (var d in GetDivisors(i))
                {
                    if (sq[d]) j = Math.Max(j, d);
                }

                count[i / j]++;
            }

            var answer = 0L;
            for (var i = 1; i <= N; i++)
            {
                answer += count[i] * count[i];
            }

            Console.WriteLine(answer);
        }

        public static IEnumerable<long> GetDivisors(long n)
        {
            for (var i = 1L; i * i <= n; i++)
            {
                if (n % i != 0) continue;
                yield return i;
                if (n / i != i) yield return n / i;
            }
        }

        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 - Together Square
ユーザ AconCavy
言語 C# (.NET Core 3.1.201)
得点 400
コード長 3764 Byte
結果 AC
実行時間 642 ms
メモリ 39884 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 400 / 400
結果
AC × 2
AC × 14
セット名 テストケース
Sample example_00.txt, example_01.txt
All example_00.txt, example_01.txt, test_00.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt
ケース名 結果 実行時間 メモリ
example_00.txt AC 85 ms 27468 KiB
example_01.txt AC 78 ms 27112 KiB
test_00.txt AC 213 ms 31908 KiB
test_01.txt AC 124 ms 28856 KiB
test_02.txt AC 153 ms 30236 KiB
test_03.txt AC 553 ms 38908 KiB
test_04.txt AC 94 ms 28356 KiB
test_05.txt AC 626 ms 39884 KiB
test_06.txt AC 622 ms 39836 KiB
test_07.txt AC 642 ms 39772 KiB
test_08.txt AC 617 ms 39820 KiB
test_09.txt AC 629 ms 39860 KiB
test_10.txt AC 85 ms 27180 KiB
test_11.txt AC 627 ms 39768 KiB