ENG  RUSTimus Online Judge
Online Judge
Задачи
Авторы
Соревнования
О системе
Часто задаваемые вопросы
Новости сайта
Форум
Ссылки
Архив задач
Отправить на проверку
Состояние проверки
Руководство
Регистрация
Исправить данные
Рейтинг авторов
Текущее соревнование
Расписание
Прошедшие соревнования
Правила
вернуться в форум

Обсуждение задачи 1008. Кодирование изображений

Getting WA#1 with my code C#
Послано nokkie 25 июн 2019 06:02
using System;
using System.Linq;
using System.Collections.Generic;

public class Program
{
    static void Main(string[] args)
    {
        int n = int.Parse(Console.ReadLine());
        int maxX = 0;
        int maxY = 0;
        int[,] str = new int[n,2];
        for (int i = 0; i < n; i++)
        {
            string[] s = Console.ReadLine().Split(' ');
            str[i, 0] = int.Parse(s[0]);
            str[i, 1] = int.Parse(s[1]);
            if (str[i,0] > maxX) maxX = str[i,0];
            if (str[i,1] > maxY) maxY = str[i,1];
        }
        bool[,] ans = new bool[maxX+2, maxY+2];
        for (int i = 0; i < n; i++)
            ans[str[i,0],str[i,1]]= true;

        List<string> pool = new List<string>();
        pool.Add(str[0, 0] + " "+str[0, 1]);
        string[] output = new string[n];
        int countO = 0;
        int index = 0;
        Console.WriteLine(pool.ElementAt(0));
        while (index<pool.Count)
        {
            string[] point = pool.ElementAt(index).Split(' ');
            int x = int.Parse(point[0]);
            int y = int.Parse(point[1]);
            ans[x, y] = false;
            string search = "";
            if (ans[x + 1, y]) { search += "R"; pool.Add((x + 1) + " " + y); ans[x+1, y] = false; }
            if (ans[x, y + 1]) { search += "T"; pool.Add(x + " " + (y+1)); ans[x, y+1] = false; }
            if (ans[x, y - 1]) { search += "B"; pool.Add(x + " " + (y-1)); ans[x, y-1] = false; }
            output[countO] = search;
            countO++;

            //Console.WriteLine("in {0}",pool.Count);
            index++;
        }
        for (int i = 0; i < n; i++)
        {
            Console.Write(output[i]);
            if (i < n - 1) Console.WriteLine(",");
            else Console.WriteLine(".");
        }
    }
}