Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Задание №3. Использовать алгоритмы!!!!!!!!!!!!!!!!!!

Использовать алгоритмы!!!!!!!!!!!!!!!!!!

Задание №1 «Слова»

В текстовом файле хранятся слова:

- вывести список различных слов (set);

- подсчитать количество вхождений каждого слова (map< string, int>).

 

Задание №2 «Рыбы»

Использовать множества с элементами типа string и операции над ними.

В озере водятся рыбы нескольких видов. Три рыбака поймали экземпляры, представляющие некоторые из имеющихся видов. Вывести в файл информацию:

- какие виды рыб есть у каждого рыбака;

- рыб каких видов выловил хотя бы один рыбак;

- какие рыбы есть в озере, но не в улове любого из рыбаков.

Алгоритмы работы с множествами:

- set_union()

- set_intersection()

- set_difference()

- set_symmetric_difference()

 

Задание №3

Каждая строка текстового файла DATA.TXT содержит информацию о городе, названии отеля и количестве звезд, присвоенном этому отелю. Данные разделены точкой с запятой, все остальные символы являются частью данных. Все строки различны, однако никакой сортировки нет.

Необходимо прочитать данные из файла в контейнер вида

map < город, vector < pair < название_отеля, количество_звезд> > >

После этого требуется обработать файл запросов QUERY.TXT, каждая строка которого соответствует одному запросу. Возможны следующие строки с запросами:

1: город

Требуется вывести всю информацию об отелях, расположенных в этом городе

2: название_отеля

Требуется вывести информацию о количестве городов, в которых есть отели с таким названием

3:

Требуется вывести все различные пары < город, количество звезд> (для обработки этого запроса можно создавать дополнительные контейнеры).

Результаты обработки запросов поместить в текстовый файл ANSWER.TXT в удобном для чтения виде. Порядок вывода результатов должен соответствовать порядку запросов.

Предусмотреть ситуацию, когда информация из запросов отсутствует во входном файле.

 

 

БОНУСНОЕ ЗАДАНИЕ (10 балов)

На плоскости заданы N прямоугольников со сторонами, параллельными осям координат. Прямоугольники могут пересекаться, совпадать друг с другом или быть нарисованы один внутри другого. Координаты вершин прямоугольников – целые неотрицательные числа, причем координата x не превосходит параметра Xmax, а координата y - параметра Ymax.

 

Из точки A(0, 0) в точку B с целочисленными координатами, лежащую на одном из отрезков [(0, Ymax), (Xmax, Ymax)] либо [(Xmax, 0), (Xmax, Ymax)], проведен отрезок. Отрезок AB может пересекать построенные прямоугольники (будем считать, что отрезок пересекает прямоугольник, даже если отрезок проходит только через одну из его вершин).

Вы должны найти такую точку B, удовлетворяющую описанным выше условиям, что отрезок AB пересечет максимальное число прямоугольников.

Входные данные: первая строка текстового файла RECT.IN содержит три целых числа: Xmax Ymax (0 < Xmax, Ymax £ 109) и N (1 £ N £ 10000). Каждая из последующих N строк содержат по 4 числа: координаты левого нижнего угла x0, y0 и координаты правого верхнего угла x1, y1. Соседние числа в строке разделяются пробелом.

Выходные данные: единственная строка выходного текстового файла RECT.OUT должна содержать три целых числа: максимальное число пересеченных отрезком AB прямоугольников и координаты x и y точки B. Соседние числа в строке разделяются одним пробелом.

Если задача допускает несколько различных решений, достаточно найти любое из них.

<== предыдущая лекция | следующая лекция ==>
Состав имущества и источники его формирования АО «ААА» на 1 января 2013 года | Самостоятельная домашняя работа по дисциплине




© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.