bekovmusa07p0c1pn
15.09.2020 10:14

Віталій полюбляє грати в азартні ігри. У його улюблену гру грає n людей. Гравці пронумеровані від 1 до n. У кожного гравця є два баланси: перший — його виграш, другий — нагорода за його голову. Спочатку у кожного гравця виграш — 0, а нагорода за голову — 1. У грі відбувається рівно n−1 послідовних подій такого виду: береться два різні гравці, які ще не вибули з гри, і перший з них вибиває другого. У результаті цієї операції до виграшу першого додається нагорода за голову другого, а до нагороди за голову першого додається половина нагороди за голову другого. Другий гравець вибуває з гри, тобто він вже не може нікого вибивати та бути знову вибитим кимось.
Вам потрібно знайти послідовність подій, таких, щоб сумарний виграш усіх гравців був мінімально (або максимально) можливий.
Входные данные

Перший рядок містить два цілі числа n та t (2≤n≤10
5
,0≤t≤1) — кількість гравців та число, яке вказує для мінімального чи максимального виграшу ви розв'язуєте задачу. Число 0 відповідає задачі для мінімального виграшу, 1 — для максимального.
Выходные данные

Виведіть n−1 рядків. В i-ому рядку повинно бути два цілі числа a
i

та b
i

(1≤a
i

,b
i

≤n), це означає, що гравець під номером a
i

вибив гравця b
i

на кроці i.
Примечание

Розберемо перший приклад. Баланси гравців на кожному кроці:
Баланси на початку: (0,1),(0,1),(0,1).
Баланси після першого кроку: (0,1),(1,1.5),(0,1).
Баланси після другого кроку: (0,1),(2,2),(0,1).
Сумарний виграш гравців: 2+0+0=2
Розберемо другий приклад. Баланси гравців на кожному кроці:
Баланси на початку: (0,1),(0,1),(0,1).
Баланси після першого кроку: (0,1),(0,1),(1,1.5).
Баланси після другого кроку: (0,1),(1.5,1.75),(1,1.5).
Сумарний виграш гравців: 1+0+1.5=2.5
Оценивание

У 50% тестів t=0.
У інших 50% тестів t=1.
timer
Лимит на использование времени: 1000 ms
storage
Лимит на использование памяти: 256 MB
arrow_circle_up
У вас есть еще 50 попыток отправить эту задачу
Примеры

Ниже вы найдете примеры входных данных и ответы которые должна вывести ваша программа.

Пример ввода #1

3 0
Пример ответа #1

2 3
2 1
Пример ввода #2

3 1
Пример ответа #2

3 1
2 3

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
linakovtunenko1
20.09.2021 19:50
Исходное число 665675757
1)665675757:2=332837878 и в остатке 1
значит пишем 1
2)332837878:2=166418939 и в остатке 0
значит пишем 0
3)166418939:2=83209469 и в остатке 1
значит пишем 1
4)83209469:2=41604734 и в остатке 1
значит пишем 1
5)41604734:2=20802367 и в остатке 0
значит пишем 0
6)20802367:2=10401183 и в остатке 1
значит пишем 1
7)10401183:2=5200591 и в остатке 1
значит пишем 1
8)5200591:2=2600295 и в остатке 1
значит пишем 1
9)2600295:2=1300147 и в ост 1
зн пишем 1
10)1300147:2=650073 и в ост 1
зн пишем 1
11)650073:2=325036 и в ост 1
зн пишем 1
12)325036:2=162518 и в ост 0
зн  пишем 0
13)162518:2=81259 и в ост 0
зн пишем 0
14)81259:2=40629 и в ост 1
зн пишем 1
15)40629:2=20314 и в ост 1
зн пишем 1
16)20314:2=10157 и в ост 0
зн пишем 0
17)10157:2=5078 и в ост 1
зн пишем 1
18)5078:2=2539 и в ост 0
зн пишем 0
19)2539:2=1269 и в ост 1
зн пишем 1
20)1269:2=634 и в ост 1
зн пишем 1
21)634:2=317 и в ост 0
зн  пишем 0
22)317:2=158 и ост 1
зн пишем 1
23)158:2=79 и ост 0
зн пишем 0
24)79:2=39 и ост 1
зн пишем 1
25)39:2=19 и ост 1
зн пишем 1
26)19:2=9 и ост 1
зн пишем 1
27)9:2=4 и ост 1
зн пишем 1
28)4:2=2 и ост 0
зн пишем 0
29)2:2=1 и ост 0
зн пишем 0
30)1:2=0 и ост 1
зн пишем 1
число в двоичной системе 10110111110011010110101111001
0,0(0 оценок)
Ответ:
sladkoegka03
02.09.2020 23:01
Самое худшее, что можно придумать, это сделать именно процедуру.
Ниже вариант с процедурой, а потом другой, без процедур. Можно сравнить...

// PascalABC.NET 3.2, сборка 1509 от 27.07.2017
// Внимание! Если программа не работает, обновите версию!

Вариант с процедурой

procedure MassAvg(var r:real);
begin
  r:=ReadSeqInteger('Вводите:',ReadInteger('n=')).Average
end;

begin
  var avg:real;
  for var i:=1 to 3 do begin
    MassAvg(avg);
    Writeln('Среднее значение: ',avg)
    end
end.

Вариант без процедур и функций

begin
  for var i:=1 to 3 do begin
    Writeln('Среднее значение: ',
        ReadSeqInteger('Вводите:',ReadInteger('n=')).Average)
    end
end.

Результат
n= 7
Вводите: -5 4 11 8 0 5 4
Среднее значение: 3.85714285714286
n= 5
Вводите: 100 32 52 43 19
Среднее значение: 49.2
n= 4
Вводите: 6 6 8 7
Среднее значение: 6.75
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота