Submission #36652094


Source Code Expand

using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
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 A = Scanner.ScanEnumerable<long>().ToArray();
            var Q = Scanner.Scan<int>();
            var latest = (T: -1, X: 0);
            var updated = new int[N];
            Array.Fill(updated, -1);

            for (var t = 0; t < Q; t++)
            {
                var query = Scanner.ScanEnumerable<int>().ToArray();
                var q = query[0];
                if (q == 1)
                {
                    var x = query[1];
                    latest = (t, x);
                }
                else if (q == 2)
                {
                    var (i, x) = (query[1] - 1, query[2]);
                    if (updated[i] < latest.T) A[i] = latest.X;
                    A[i] += x;
                    updated[i] = t;
                }
                else
                {
                    var i = query[1] - 1;
                    if (updated[i] < latest.T) A[i] = latest.X;
                    Console.WriteLine(A[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));
        }
    }
}

Submission Info

Submission Time
Task D - All Assign Point Add
User AconCavy
Language C# (.NET Core 3.1.201)
Score 400
Code Size 3878 Byte
Status AC
Exec Time 261 ms
Memory 66188 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 400 / 400
Status
AC × 3
AC × 15
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_N_small_03.txt, 01_N_small_04.txt, 01_N_small_05.txt, 01_N_small_06.txt, 02_random_07.txt, 02_random_08.txt, 02_random_09.txt, 02_random_10.txt, 03_max_11.txt, 04_handmade_12.txt, 04_handmade_13.txt, 04_handmade_14.txt
Case Name Status Exec Time Memory
00_sample_00.txt AC 80 ms 27996 KiB
00_sample_01.txt AC 83 ms 27972 KiB
00_sample_02.txt AC 82 ms 28324 KiB
01_N_small_03.txt AC 201 ms 46812 KiB
01_N_small_04.txt AC 186 ms 46780 KiB
01_N_small_05.txt AC 198 ms 46696 KiB
01_N_small_06.txt AC 202 ms 46852 KiB
02_random_07.txt AC 205 ms 55852 KiB
02_random_08.txt AC 224 ms 62664 KiB
02_random_09.txt AC 182 ms 55728 KiB
02_random_10.txt AC 225 ms 63592 KiB
03_max_11.txt AC 261 ms 65760 KiB
04_handmade_12.txt AC 241 ms 55520 KiB
04_handmade_13.txt AC 211 ms 51920 KiB
04_handmade_14.txt AC 260 ms 66188 KiB