Віталій полюбляє грати в азартні ігри. У його улюблену гру грає 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
2 - меньше информации
3 - глобус, макет здания, муляж яблока, манекен
4 - рисунок, фотография
5 - знаковой
6 - смешанной
7 - автомобиль — техническое описание автомобиля, город — путеводитель по городу
8 - существенные признаки объекта-оригинала
9 - разные модели объекта
10 - физическая карта, график зависимости расстояния от времени, схема узора для вязания крючком, схема метро
11 - словесное описание, формула
12 - знаковой
13 - смешанной
14 - болт — чертеж болта, мелодия — нотная запись мелодии
дешифровки:
Const sh = '_.,';
Var
St : String;
i : Integer;
Function DeCode(S : String; Tabl : String; k : Integer) : String;
Var j,n : Integer;
Begin
For j:=1 to Length(S) do
Begin
n:=Pos(S[j],sh);
If n>0 then
Begin
n:=n+k;
While n>Length(sh) do n:=n-Length(sh);
While n<=0 do n:=n+Length(sh);
S[j]:=sh[n];
end
end;
DeCode:=S;
end;
Begin
St:='ЗЫФЙГФШРЦ . ШД';
Writeln(Decode(St,sh,-6));
//For i:=-10 to 10 do Writeln(Decode(St,sh,i));
end.