提出 #44504779


ソースコード 拡げる

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 Q = Scanner.Scan<int>();
        var state = 0;
        var changed = -1;
        var T = S.ToCharArray();
        var queries = new (int T, int X, char C)[Q];
        for (var i = 0; i < Q; i++)
        {
            var (t, x, c) = Scanner.Scan<int, int, char>();
            x--;
            queries[i] = (t, x, c);
            if (t != 1)
            {
                state = t;
                changed = i;
            }
        }

        for (var i = 0; i < Q; i++)
        {
            var (t, x, c) = queries[i];
            if (i == changed && state != 1)
            {
                for (var j = 0; j < N; j++)
                {
                    T[j] = state == 2 ? char.ToLower(T[j]) : char.ToUpper(T[j]);
                }
            }

            if (t == 1)
            {
                T[x] = c;
            }
        }

        var answer = new string(T);
        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 - LOWER
ユーザ AconCavy
言語 C# 11.0 (.NET 7.0.7)
得点 400
コード長 3809 Byte
結果 AC
実行時間 267 ms
メモリ 66952 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 400 / 400
結果
AC × 2
AC × 24
セット名 テストケース
Sample 00_sample_00.txt, 00_sample_01.txt
All 00_sample_00.txt, 00_sample_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, 01_random_18.txt, 01_random_19.txt, 01_random_20.txt, 01_random_21.txt, 02_edge_22.txt, 02_edge_23.txt
ケース名 結果 実行時間 メモリ
00_sample_00.txt AC 42 ms 24628 KiB
00_sample_01.txt AC 33 ms 24696 KiB
01_random_02.txt AC 217 ms 66620 KiB
01_random_03.txt AC 201 ms 66876 KiB
01_random_04.txt AC 198 ms 66680 KiB
01_random_05.txt AC 198 ms 66624 KiB
01_random_06.txt AC 231 ms 66788 KiB
01_random_07.txt AC 196 ms 66620 KiB
01_random_08.txt AC 189 ms 66676 KiB
01_random_09.txt AC 194 ms 66668 KiB
01_random_10.txt AC 204 ms 66632 KiB
01_random_11.txt AC 267 ms 66840 KiB
01_random_12.txt AC 210 ms 66952 KiB
01_random_13.txt AC 232 ms 66796 KiB
01_random_14.txt AC 191 ms 66688 KiB
01_random_15.txt AC 193 ms 66800 KiB
01_random_16.txt AC 187 ms 66792 KiB
01_random_17.txt AC 62 ms 38276 KiB
01_random_18.txt AC 142 ms 62720 KiB
01_random_19.txt AC 209 ms 66212 KiB
01_random_20.txt AC 69 ms 44372 KiB
01_random_21.txt AC 156 ms 63812 KiB
02_edge_22.txt AC 186 ms 64836 KiB
02_edge_23.txt AC 217 ms 66780 KiB