Подразделы

Дата и время

20/12/2024 17:07:10

Авторизация

Имя:
Пароль:
Зарегистрироваться
Восстановить пароль
 

print2344. Набор точек

printНабор точек

Ограничения: время – 1s/2s, память – 256MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод copy
Послать решение Blockly Посылки Темы Где Обсудить (0)

Определите класс NaborTochek для хранения набора точек (структура Tochka) и вспомогательные классы для исключений DuplicateError, NotExistError. В классе должны быть методы Add (добавление точки, если точка уже существует, то порождается исключительная ситуация DuplicateError), Remove (удаление точки, если точка не существует, то порождается исключительная ситуация NotExistError), Nearest (точка, ближайшая к заданной, если точек в наборе нет, то порождается исключительная ситуация NotExistError).
Для проверки класса будет использована следующая программа:
class Program
{
    static void Main()
    {
        NaborTochek nabor=new NaborTochek();
        string s;
        while((s=Console.ReadLine())!=null)
        { string[] items=s.Split(' ');
          Tochka p=new Tochka(Convert.ToInt32(items[1]),Convert.ToInt32(items[2]));
          Tochka r;
          try
          {
            if(items[0]=="+") nabor.Add(p);
            else if(items[0]=="-") nabor.Remove(p);
            else if(items[0]=="?") 
            { r=nabor.Nearest(p);
              Console.WriteLine("{0} {1}",r.x,r.y);
            }
          }
          catch(DuplicateError e1)
          {
            Console.WriteLine("Duplicate");
          }
          catch(NotExistError e2)
          {
            Console.WriteLine("NotExist");
          }
        }
    }
}
На вход программе подаются не более 1000 строк, содержащих команду для добавления, удаления или поиска ближайшей точки и координаты точки. Координаты точек лежат в диапазоне от `-10^9` до `10^9`.
Внимание! В качестве решения нужно высылать только определения классов и структур, а не полную программу.

Пример ввода

? 0 0
+ 1 0
+ 1 0
+ 5 5
? 4 5
- 2 5
- 5 5
? 4 5

Вывод программы

NotExist
Duplicate
5 5
NotExist
1 0
loading