Submission #48803672


Source Code Expand

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

namespace Tasks;

public class C
{
    public static void Main()
    {
        using var sw = new StreamWriter(Console.OpenStandardOutput()) { AutoFlush = true };
        Console.SetOut(sw);
        Solve();
        Console.Out.Flush();
    }

    public static void Solve()
    {
        var (N, K) = Scanner.Scan<int, int>();
        var A = Scanner.ScanEnumerable<int>().ToArray();
        var cumL = new long[K + 1];
        var cumR = new long[K + 1];
        for (var i = 0; i < K; i++)
        {
            cumL[i + 1] += cumL[i];
            if (i % 2 == 1) cumL[i + 1] += A[i] - A[i - 1];
        }

        Array.Reverse(A);
        for (var i = 0; i < K; i++)
        {
            cumR[i + 1] += cumR[i];
            if (i % 2 == 1) cumR[i + 1] += A[i - 1] - A[i];
        }

        Array.Reverse(cumR);

        const long Inf = 1L << 60;
        var answer = Inf;
        for (var i = 0; i < K; i += 2)
        {
            answer = Math.Min(answer, cumL[i] + cumR[i]);
        }

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

Submission Info

Submission Time
Task C - Socks 2
User AconCavy
Language C# 11.0 (.NET 7.0.7)
Score 350
Code Size 3542 Byte
Status AC
Exec Time 81 ms
Memory 48952 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 350 / 350
Status
AC × 3
AC × 28
Set Name Test Cases
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_00.txt, 01_random_01.txt, 01_random_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, 02_consec_00.txt, 02_consec_01.txt, 02_consec_02.txt, 03_segreg_00.txt, 03_segreg_01.txt, 03_segreg_02.txt, 03_segreg_03.txt
Case Name Status Exec Time Memory
00_sample_00.txt AC 49 ms 26644 KiB
00_sample_01.txt AC 53 ms 26416 KiB
00_sample_02.txt AC 50 ms 26612 KiB
01_random_00.txt AC 49 ms 26608 KiB
01_random_01.txt AC 42 ms 26628 KiB
01_random_02.txt AC 53 ms 26380 KiB
01_random_03.txt AC 48 ms 26320 KiB
01_random_04.txt AC 47 ms 26776 KiB
01_random_05.txt AC 50 ms 26308 KiB
01_random_06.txt AC 53 ms 26364 KiB
01_random_07.txt AC 53 ms 26432 KiB
01_random_08.txt AC 71 ms 38844 KiB
01_random_09.txt AC 67 ms 38772 KiB
01_random_10.txt AC 72 ms 38676 KiB
01_random_11.txt AC 61 ms 38844 KiB
01_random_12.txt AC 72 ms 48952 KiB
01_random_13.txt AC 73 ms 48712 KiB
01_random_14.txt AC 78 ms 48784 KiB
01_random_15.txt AC 78 ms 48764 KiB
01_random_16.txt AC 77 ms 48940 KiB
01_random_17.txt AC 76 ms 48788 KiB
02_consec_00.txt AC 53 ms 26648 KiB
02_consec_01.txt AC 81 ms 42876 KiB
02_consec_02.txt AC 66 ms 38036 KiB
03_segreg_00.txt AC 62 ms 39272 KiB
03_segreg_01.txt AC 70 ms 38032 KiB
03_segreg_02.txt AC 58 ms 38824 KiB
03_segreg_03.txt AC 71 ms 38784 KiB