Если друзья могут пройти все уровни вместе, выведите «I become the guy.» - Free Pascal

Узнай цену своей работы

Формулировка задачи:

Помогите решить задачу: Есть такая игра под названием «I Wanna Be the Guy», в ней n уровней. Little X и его друг Little Y подсели на эту игру. Каждый из них хочет пройти игру полностью. Little X может пройти только p уровней этой игры. А Little Y может пройти только q уровней этой игры. Вам даны номера уровней, которые может пройти Little X, и номера уровней, которые может пройти Little Y. Могут ли Little X и Little Y пройти игру полностью, если объединят свои усилия?

Входные данные

В первой строке записано единственное целое число n (1 ≤  n ≤ 100). В следующей строке сначала записано целое число p (0 ≤ p ≤ n), затем следуют p различных целых чисел a1, a2, ..., ap (1 ≤ ai ≤ n). Эти числа обозначают номера уровней, которые может пройти Little X. В следующей строке содержатся номера уровней, которые может пройти Little Y, в аналогичном формате. Предполагается, что уровни пронумерованы от 1 до n.

Выходные данные

Если друзья могут пройти все уровни вместе, выведите «I become the guy.». Если это невозможно, выведите «Oh, my keyboard!» (без кавычек).

Примеры тестов

входные данные

4 3 1 2 3 2 2 4

выходные данные

I become the guy.

входные данные

4 3 1 2 3 2 2 3

выходные данные

Oh, my keyboard!

Примечание

В первом примере Little X может пройти уровни [1 2 3], а Little Y может пройти уровни [2 4], так что вместе ребята могут пройти все уровни. Во втором примере никто не может пройти уровень 4.

Решение задачи: «Если друзья могут пройти все уровни вместе, выведите «I become the guy.»»

textual
Листинг программы
var n,p,q,a,i:byte;
    s,ps,qs:set of byte;
begin
read(n);
s:=[1..n];
read(p);
ps:=[];
for i:=1 to p do
 begin
  read(a);
  ps:=ps+[a];
 end;
read(q);
qs:=[];
for i:=1 to q do
 begin
  read(a);
  qs:=qs+[a];
 end;
if s-ps-qs=[] then Writeln('I become the guy.')
else Write('Oh, my keyboard!');
end.

Объяснение кода листинга программы

  1. Вначале объявляются переменные: n, p, q, a, i (1..5) типа byte.
  2. Затем объявляются наборы (sets) s, ps, qs.
  3. Переменная n инициализируется значением из файла стандартного ввода.
  4. Значение переменной n добавляется во все три набора.
  5. Переменная p инициализируется значением из файла стандартного ввода.
  6. В цикле от 1 до p считывается значение переменной a и добавляется во второй набор ps.
  7. Переменная q инициализируется значением из файла стандартного ввода.
  8. В цикле от 1 до q считывается значение переменной a и добавляется в третий набор qs.
  9. Выполняется проверка: если разница между наборами s и (ps U qs) пустая, то выводится сообщение 'I become the guy.'.
  10. В противном случае выводится сообщение 'Oh, my keyboard!'.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.571 из 5
Похожие ответы