Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.05.2013, 19:21   #1
22hope22
Пользователь
 
Регистрация: 31.03.2013
Сообщений: 52
По умолчанию Экзамен по истории

Ребят, срочно нужна ваша помощь

1196. Экзамен по истории
Ограничение времени: 2.0 секунды
Ограничение памяти: 64 МБ
Будем справедливы: сессия ставит задачи не только студентам, но и преподавателям. Любой преподаватель обучает немалое количество студентов, а ведь каждого надо еще и проверить. Поэтому один из преподавателей решил принимать экзамен по истории по такой упрощённой процедуре: студент записывает все известные ему «исторические» даты (достаточно, чтобы он написал только года, но, конечно, мог объяснить, чем замечательна та или иная дата). Преподаватель же держит перед глазами список дат, которые студент должен знать. Для оценки знаний студента преподаватель подсчитывает количество чисел в списке студента, которые также есть в списке преподавателя. В зависимости от полученного числа и выставляется итоговая оценка.
Вы должны оказать посильную помощь в автоматизации этого процесса, разработав программу для подсчёта количества совпадений в списках студента и преподавателя.

Исходные данные
В первой строке содержится число N — количество записей в списке преподавателя. 1 ≤ N ≤ 15000. Затем идет N строк, содержащих список преподавателя, по одной дате в строке. Записаны только года. Каждый год — целое число в пределах от 1 до 109. Даты в этом списке отсортированы по неубыванию. В следующей после списка строке содержится число M — количество записей в списке студента, 1 ≤ M ≤ 106. Затем также M строк с датами (записаны только года, каждый год — целое число в пределах от 1 до 109). Этот список не отсортирован. В списке как студента, так и преподавателя даты могут повторяться.

Результат
Вы должны вывести одно число — количество чисел во втором списке, которые также содержатся в первом.

Пример
исходные данные результат
2 2
1054
1492
4
1492
65536
1492
100
22hope22 вне форума Ответить с цитированием
Старый 17.05.2013, 22:38   #2
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Цитата:
Каждый год — целое число в пределах от 1 до 109.
Дайте угадаю. Степень потерялась, да?
Ну почему Вы не можете вычитать текст перед отправкой?..

А так, гуглите "бинарный поиск". Время - O(M*lnN), память - O(N). По памяти уложитесь точно, по времени должны.
Abstraction вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
видео из истории silveran ASP.NET 0 13.05.2011 12:00
Файл истории -=pasha=- БД в Delphi 3 16.07.2010 05:44
Работа по истории :) Utkin Свободное общение 2 04.03.2010 12:36