Submission #41548153


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 B
    {
        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 (H, W) = Scanner.Scan<int, int>();
            var S = new char[H][];
            const string Snuke = "snuke";

            for (var i = 0; i < H; i++)
            {
                S[i] = Scanner.Scan<string>().ToCharArray();
            }

            bool F(int h, int w, int dh, int dw, int i)
            {
                if (i >= 5) return true;
                var result = true;
                var nh = h + dh * i;
                var nw = w + dw * i;
                if (nh < 0 || nh >= H || nw < 0 || nw >= W) return false;
                result &= S[nh][nw] == Snuke[i];
                result &= F(h, w, dh, dw, i + 1);
                return result;
            }

            for (var i = 0; i < H; i++)
            {
                for (var j = 0; j < W; j++)
                {
                    for (var dh = -1; dh <= 1; dh++)
                    {
                        for (var dw = -1; dw <= 1; dw++)
                        {
                            if (F(i, j, dh, dw, 0))
                            {
                                for (var k = 0; k < 5; k++)
                                {
                                    Console.WriteLine($"{i + 1 + dh * k} {j + 1 + dw * k}");
                                }

                                return;
                            }
                        }
                    }
                }
            }
        }

        public static class Scanner
        {
            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 buffer = Scan();
                return (Convert<T1>(buffer[0]), Convert<T2>(buffer[1]));
            }
            public static (T1, T2, T3) Scan<T1, T2, T3>() where T1 : IConvertible where T2 : IConvertible where T3 : IConvertible
            {
                var buffer = Scan();
                return (Convert<T1>(buffer[0]), Convert<T2>(buffer[1]), Convert<T3>(buffer[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 buffer = Scan();
                return (Convert<T1>(buffer[0]), Convert<T2>(buffer[1]), Convert<T3>(buffer[2]), Convert<T4>(buffer[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 buffer = Scan();
                return (Convert<T1>(buffer[0]), Convert<T2>(buffer[1]), Convert<T3>(buffer[2]), Convert<T4>(buffer[3]), Convert<T5>(buffer[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 buffer = Scan();
                return (Convert<T1>(buffer[0]), Convert<T2>(buffer[1]), Convert<T3>(buffer[2]), Convert<T4>(buffer[3]), Convert<T5>(buffer[4]), Convert<T6>(buffer[5]));
            }
            public static IEnumerable<T> ScanEnumerable<T>() where T : IConvertible => Scan().Select(Convert<T>);
            private static string[] Scan()
            {
                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 B - Find snuke
User AconCavy
Language C# (.NET Core 3.1.201)
Score 250
Code Size 4368 Byte
Status AC
Exec Time 89 ms
Memory 27556 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 250 / 250
Status
AC × 3
AC × 33
Set Name Test Cases
Sample example_00.txt, example_01.txt, example_02.txt
All example_00.txt, example_01.txt, example_02.txt, random_00.txt, random_01.txt, random_02.txt, random_03.txt, random_04.txt, random_05.txt, random_06.txt, random_07.txt, random_08.txt, random_09.txt, random_10.txt, random_11.txt, random_12.txt, random_13.txt, random_14.txt, random_15.txt, random_16.txt, random_17.txt, random_18.txt, random_19.txt, random_20.txt, random_21.txt, random_22.txt, random_23.txt, random_24.txt, random_25.txt, random_26.txt, random_27.txt, random_28.txt, random_29.txt
Case Name Status Exec Time Memory
example_00.txt AC 84 ms 27208 KiB
example_01.txt AC 76 ms 27168 KiB
example_02.txt AC 78 ms 27208 KiB
random_00.txt AC 77 ms 27556 KiB
random_01.txt AC 75 ms 27136 KiB
random_02.txt AC 84 ms 27052 KiB
random_03.txt AC 89 ms 27236 KiB
random_04.txt AC 78 ms 27108 KiB
random_05.txt AC 71 ms 27180 KiB
random_06.txt AC 75 ms 27212 KiB
random_07.txt AC 75 ms 27136 KiB
random_08.txt AC 80 ms 27028 KiB
random_09.txt AC 75 ms 27360 KiB
random_10.txt AC 87 ms 27132 KiB
random_11.txt AC 87 ms 27396 KiB
random_12.txt AC 81 ms 27184 KiB
random_13.txt AC 85 ms 27240 KiB
random_14.txt AC 79 ms 27200 KiB
random_15.txt AC 84 ms 27128 KiB
random_16.txt AC 71 ms 27056 KiB
random_17.txt AC 73 ms 27260 KiB
random_18.txt AC 89 ms 27248 KiB
random_19.txt AC 72 ms 27348 KiB
random_20.txt AC 74 ms 27132 KiB
random_21.txt AC 77 ms 27160 KiB
random_22.txt AC 74 ms 27152 KiB
random_23.txt AC 79 ms 27216 KiB
random_24.txt AC 75 ms 27204 KiB
random_25.txt AC 85 ms 27028 KiB
random_26.txt AC 79 ms 27004 KiB
random_27.txt AC 86 ms 27128 KiB
random_28.txt AC 87 ms 27264 KiB
random_29.txt AC 79 ms 27528 KiB