Форум программистов, компьютерный форум, киберфорум
Free Pascal
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 01.12.2015
Сообщений: 120
1

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

30.12.2015, 11:50. Просмотров 1425. Ответов 8
Метки нет (Все метки)

Помогите решить задачу:
Есть такая игра под названием «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.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.12.2015, 11:50
Ответы с готовыми решениями:

Кто-нибудь может пройти все уровни?
Мне тут игрушку подкинули - там 15 уровней. Можете пройти? Я только 4 осилила) ...

Введите три числа. Если они могут быть длинами сторон прямоугольного треугольника, выведите их в порядке возрастания
Введите три числа. Если они могут быть длинами сторон прямоугольного треугольника, выведите их в...

Введите три числа. Если они могут быть длинами сторон тупоугольного треугольника, выведите их в порядке убывания и вычислите площадь
Введите три числа. Если они могут быть длинами сторон тупоугольного треугольника, выведите их в...

Выведите все возможные различные корректные IP-адреса, которые могут быть сложены из заданных кусочков.
Вася решил заняться администрированием компьютерных сетей. Он узнал IP-адресс сервера школьной сети...

8
8 / 3 / 4
Регистрация: 04.10.2015
Сообщений: 16
02.01.2016, 19:22 2
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
const N = 20;
var
  p, q, i : byte;
pS, qS, S : set of byte;
type Tset = set of byte;
 procedure MakeLv(ai : byte; var aset : Tset);
  var k, l, i : byte;
   begin
    l:=0;
    aset:=[];
       While l<ai do
        begin
         k:=Random(N+1);
         if not (k in aset) then
         begin
         aset:=aset + [k]; l:=l+1;
         end;
         if k=0 then begin aset:=aset - [k]; l:=l-1; end;
        end;
   end;
  begin
   Randomize;
   S:=[];
   p:=Random(N + 1);
   q:=Random(N + 1);
   Writeln(N);
   Write(p, ' ');
   MakeLv(p, pS);
     for i:=1 to N do if i in pS then Write(i, ' ');Writeln;
   Write(q, ' ');
   MakeLv(q, qS);
    for i:=1 to N do if i in qS then Write(i, ' ');
     S:=[1..N];
     if S - pS - qS = [] then Writeln('I become the guy.')
     else Write('Oh, my keyboard!');
     Readln
end.
0
0 / 0 / 0
Регистрация: 01.12.2015
Сообщений: 120
02.01.2016, 19:35  [ТС] 3
Pent, можешь помочь ,чтобы переделать под ввод с клавиатуры?
0
8 / 3 / 4
Регистрация: 04.10.2015
Сообщений: 16
02.01.2016, 19:57 4
Цитата Сообщение от Pent Посмотреть сообщение
p:=Random(N + 1); q:=Random(N + 1);
вместо этого попробуй Write('Введите число уровней, которые может пройти LittleX'); Readln(p) и так же с LittleY будет q
0
0 / 0 / 0
Регистрация: 01.12.2015
Сообщений: 120
02.01.2016, 20:14  [ТС] 5
Pent,
Pascal
1
k:=Random(N+1);
а это?
Ты сам код делал? ТАм мало этого поменять
0
8 / 3 / 4
Регистрация: 04.10.2015
Сообщений: 16
02.01.2016, 20:40 6
ты хочешь и число уровней и номера уровней вводить с клавы?
0
0 / 0 / 0
Регистрация: 01.12.2015
Сообщений: 120
02.01.2016, 21:32  [ТС] 7
Pent, да
0
8 / 3 / 4
Регистрация: 04.10.2015
Сообщений: 16
03.01.2016, 08:09 8
Через ввод не получается сделать. То ли после НГ голова еще не отошла, то ли не хватает знаний (сам только недавно начал учить Паскаль). Может кто-то поможет еще
0
Модератор
62216 / 46513 / 32067
Регистрация: 18.05.2008
Сообщений: 112,439
03.01.2016, 08:50 9
Лучший ответ Сообщение было отмечено Derzky как решение

Решение

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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 минуту
Задача похоже с проверочного сайта, там вводятся корректные данные.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.01.2016, 08:50

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Выведите все числа от A до B включительно, в порядке возрастания, если A < B
2. Даны два целых числа A и В (каждое в отдельной строке). Выведите все числа от A до B...

Как отфильтровать сводную таблицу, если все критерии могут не существовать?
Есть код фильтра: With ActiveSheet.PivotTables(&quot;Сводная1&quot;).PivotFields(&quot;Отклонения&quot;)...

Как создать обычный файл exe, который могут открывать друзья.
Всем доброе утро! Вопрос о том как сделать программу, которая запускалась бы одним файлом .exe....

Проверить, могут ли все заданные точки лежать на одной окружности и, если да, найти её радиус
Помогите, пожалуйста. Задан размер массива действительных чисел и значения его элементов. Считая,...

Сколькими способами они могут занять места, если все пять пар сидят подряд?
2. Сколькими способами они могут занять места, если все пять пар сидят подряд?

Могут ли DDR2 и DDR3 работать вместе?
Привет всем! Есть вот такая материнская плата:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.