Есть учреждение в котором выдают две справки — №1 и №2, причем справку №2 дают, только...

0 голосов
34 просмотров

Есть учреждение в котором выдают две справки — №1 и №2, причем справку №2 дают, только если у тебя есть справка №1. Каждую справку дают 5 минут в отдельном окошке. До открытия учреждения сформировалась очередь из двадцати человек (у некоторых первая справка уже есть). Вам дана эта очередь в виде строки из 1 и 2 (цифра 1 на пятой позиции слева означает, что пятому человеку нужна и справка №1 и справка №2, цифра 2 на третьей позиции слева означает, что третьему человеку нужна только справка №2).
11222222122221111222
Как только учреждение откроется, люди из очереди будут заходить внутрь и вставать в очередь каждый в нужное ему окошечко. Как только человек из очереди в первое окошечко получит справку, он сразу встанет в конец очереди во второе окошко.
Будем считать, что люди попадут внутрь помещения мгновенно, а также между очередями они перемещаются мгновенно.
Определите, кто освободится последним и через сколько минут это произойдет. В качестве ответа выведите два числа через пробел: номер освободившегося последним человека и сколько минут у него ушло на получение нужных справок, например, 3 45.
Комментарий. Если бы в очереди стояли три человека и вам была бы дана такая строка: 122, то это означало бы, что в очереди в первое окошечко стоит человек номер 1, а в очереди во второе окошечко – человек номер 2 и следом за ним – человек номер 3. Через пять минут человек номер два получит свою справку и уйдет, а человек номер 1 получит первую справку и встанет в очередь за человеком номер 3. Еще через 10 минут он освободится. Для этого примера ответ: 1 15.


Информатика (28 баллов) | 34 просмотров
Дан 1 ответ
0 голосов
Правильный ответ
//PascalABC.NET
//Версия 3.3, сборка 1634 (14.02.2018)

begin
  var s := ReadString.JoinIntoString(' ').ToIntegers;
  var (a,b):=(s.Where(t->t=1).Count,s.Where(t->t=2).Count);
  (s.FindLastIndex(t->t=s.Min)+1).Println;
  Println((b=0) and (a>0)?(a+1)*5:a*5+b*5);
end.

Пример:
11222222122221111222
17
100
(5.8k баллов)