提出 #32901859


ソースコード 拡げる

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, X) = Scanner.Scan<int, int>();
            var AB = new (long A, long B)[N];
            for (var i = 0; i < N; i++)
            {
                AB[i] = Scanner.Scan<long, long>();
            }

            var minStarts = new long[N];
            for (var i = 1; i < N; i++)
            {
                minStarts[i] = minStarts[i - 1] + AB[i - 1].A + AB[i - 1].B;
            }

            const long inf = (long)4e18;
            var answer = inf;
            for (var i = 0; i < N; i++)
            {
                var time = minStarts[i];
                var x = X;
                if (x - i > 0)
                {
                    x -= i + 1;
                    time += AB[i].A + AB[i].B;
                }

                time += x * AB[i].B;
                answer = Math.Min(answer, time);
            }

            Console.WriteLine(answer);
        }

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

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 400 / 400
結果
AC × 2
AC × 21
セット名 テストケース
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, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt
ケース名 結果 実行時間 メモリ
example_00.txt AC 88 ms 27232 KiB
example_01.txt AC 75 ms 27172 KiB
test_00.txt AC 162 ms 50628 KiB
test_01.txt AC 166 ms 50640 KiB
test_02.txt AC 170 ms 50948 KiB
test_03.txt AC 114 ms 47792 KiB
test_04.txt AC 145 ms 49388 KiB
test_05.txt AC 105 ms 41436 KiB
test_06.txt AC 147 ms 50304 KiB
test_07.txt AC 172 ms 50596 KiB
test_08.txt AC 171 ms 50472 KiB
test_09.txt AC 165 ms 50692 KiB
test_10.txt AC 117 ms 48180 KiB
test_11.txt AC 136 ms 49384 KiB
test_12.txt AC 96 ms 36764 KiB
test_13.txt AC 100 ms 37836 KiB
test_14.txt AC 151 ms 50712 KiB
test_15.txt AC 166 ms 50500 KiB
test_16.txt AC 164 ms 50524 KiB
test_17.txt AC 167 ms 50808 KiB
test_18.txt AC 168 ms 50420 KiB