Меню сайта

Категории раздела
Готовимся к олимпиаде по программированию (задачи взяты с сайта http://olimpiada.com.ru) [36]
Решение олимпиадных задач по программированию
Готовимся к олимпиаде по математике [3]
Решение олимпиадных задач по математике

Мини-чат

Наш опрос
Оцените мой сайт
Всего ответов: 2678

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0


Главная

Регистрация

Вход
Вы вошли как Гость | Группа "Гости" | RSS


Личный сайт учителя математики и информатики

Фоновой Натальи Леонидовны



Четверг, 28.03.2024, 20:55
Главная » Файлы » Внеурочная деятельность » Готовимся к олимпиаде по программированию (задачи взяты с сайта http://olimpiada.com.ru)

Роботландия
14.02.2012, 08:22

Условие:
Сообщество роботов живет по следующим законам:
- один раз в начале года они объединяются в группы по три или пять роботов;
- за год группа из 3 роботов собирает 5 новых, а группа из 5 роботов собирает 9 новых;
- роботы собираются так, чтобы собрать за год наибольшее количество;
- каждый робот живет три года после сборки.
Известно начальное количество роботов К и все они только что собраны. Сколько роботов будет через N лет?

Технические условия:
Стандартные.

Примеры входных и выходных файлов:
Отсутствуют.

Решение:
Идея решения. Если роботов много, им выгоднее собираться по 5, потому что 3 пятерки соберут 27 роботов, а 5 троек только 25. Рассмотрим все случаи, когда количество роботов не делится на 5.
- Количество роботов при делении на 5 дает остаток 3.
Роботы собираются пятерками, а три "лишних” робота составляют одну тройку.
- Количество роботов при делении на 5 дает остаток 1.
Все роботы, кроме 6, собираются пятерками, а 6 "лишних” образуют 2 тройки ( 2 тройки соберут 10 роботов, а одна пятерка- 9).
- Количество роботов при делении на 5 дает остаток 4.
Все роботы, кроме 9, собираются пятерками, а 9 "лишних” образуюют 3 тройки (3 тройки соберут 15 роботов, а одна пятерка- 9).
- Количество роботов при делении на 5 дает остаток 2.
Все роботы, кроме 12, собираются пятерками, а 12 лишних образуют 4 тройки (4 тройки соберут 20 роботов, а 2 пятерки -18).
Роботы собираются в группы так, чтобы максимальное их число было задействовано в процессе изготовления новых роботов.

var
i,k,n,s,s0,s1,s2,s3,x:integer;
begin
write('Начальное количество роботов...');
readln(k);
write('Количество лет...');
readln(n);
s0:=k; {количество роботов, которым 0 лет}
s1:=0; {количество роботов, которым 1 год}
s2:=0; {количество роботов, которым 2 года}
s3:=0; {количество роботов, которым 3 года}
for i:=0 to n do {процесс идет n лет}
begin
s:=s0+s1+s2+s3; {сколько всего роботов}
case s mod 5 of {выделяем случаи}
0: x:=(s div 5)*9;
1: if s=1 then x:=0
else x:=(((s-5) div 5)*9)+10;
2: if s=2 then x:=0
else if s=7 then x:=10
else x:=(((s-10) div 5)*9)+20;
3 : x:=((s div 5)*9)+5;
4 : if s=4 then x:=5
else x:=(((s-5) div 5)*9)+15;
end;
s3:=s2; {роботы "постарели” на год}
s2:=s1;
s1:=s0;
s0:=x; {построили за последний год}
end;
writeln('Через ',n, ' лет будет ',s,' роботов');
end.
Категория: Готовимся к олимпиаде по программированию (задачи взяты с сайта http://olimpiada.com.ru) | Добавил: admin
Просмотров: 1536 | Загрузок: 0 | Комментарии: 1 | Рейтинг: 5.0/1
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Поиск

Кнопка сайта

Одна кнопка

время жизни сайта

Сайт участвует
конкурс сайтов 

Новости образовани

Фраза дня

Web-мастеру

OperaFirefoxGoogle ChromeDownload Master
QIPSkypeµTorrentTeamViewer
Dr.Web CureITAvira AntiVirTotal CommanderCDBurnerXP
PicasaIrfanViewCheMaxDAEMON Tools
AIMPKMPlayerBSplayerK-Lite Codec Pack

Установить себе такой Блок
Скрипты и HTML для uCOz

Раскрутка сайта
Graffiti Decorations(R) Studio (TM) Site Promoter

Copyright MyCorp © 2024
/td>