Пример #1
0
        public static void Solve()
        {
            var N   = Scanner.Scan <int>();
            var S   = Scanner.ScanLine();
            var deq = new Deque <int>();

            deq.PushBack(N);
            foreach (var(c, i) in S.Select((x, i) => (x, i)).Reverse())
            {
                if (c == 'L')
                {
                    deq.PushBack(i);
                }
                else
                {
                    deq.PushFront(i);
                }
            }

            Console.WriteLine(string.Join(" ", deq));
        }
Пример #2
0
        public static void Solve()
        {
            var S = Scanner.ScanLine();

            var(l, r) = (0, S.Length - 1);
            while (r >= 0 && S[r] == 'a')
            {
                r--;
            }
            while (l < r && S[l] == 'a')
            {
                l++;
            }

            var lc = l;
            var rc = S.Length - r - 1;

            if (lc > rc)
            {
                Console.WriteLine("No");
                return;
            }

            var t      = S[l..(r + 1)];
Пример #3
0
        public static void Solve()
        {
            var N = Scanner.Scan <int>();
            var G = new string[N];

            for (var i = 0; i < N; i++)
            {
                G[i] = Scanner.ScanLine();
            }

            for (var i = 0; i < N; i++)
            {
                for (var j = 0; j < N; j++)
                {
                    var ok = false;
                    if (i + 5 < N)
                    {
                        var count = 0;
                        for (var k = 0; k <= 5; k++)
                        {
                            if (G[i + k][j] == '#')
                            {
                                count++;
                            }
                        }

                        ok |= count >= 4;
                    }

                    if (j + 5 < N)
                    {
                        var count = 0;
                        for (var k = 0; k <= 5; k++)
                        {
                            if (G[i][j + k] == '#')
                            {
                                count++;
                            }
                        }

                        ok |= count >= 4;
                    }

                    if (i + 5 < N && j + 5 < N)
                    {
                        var count = 0;
                        for (var k = 0; k <= 5; k++)
                        {
                            if (G[i + k][j + k] == '#')
                            {
                                count++;
                            }
                        }

                        ok |= count >= 4;
                    }

                    if (i + 5 < N && j - 5 >= 0)
                    {
                        var count = 0;
                        for (var k = 0; k <= 5; k++)
                        {
                            if (G[i + k][j - k] == '#')
                            {
                                count++;
                            }
                        }

                        ok |= count >= 4;
                    }

                    if (ok)
                    {
                        Console.WriteLine("Yes");
                        return;
                    }
                }
            }

            Console.WriteLine("No");
        }