Областная олимпиада по информатике 2020 год, 9-11 классы


Задача B. Перестановка

Ограничение по времени:
1 секунда
Ограничение по памяти:
256 мегабайт

Постройте пилообразную циклическую перестановку $p$ длины $n$. Перестановка называется циклической тогда и только тогда, когда она состоит из единственного цикла.(То есть в графе с ребрами $i$ - $p_i$ ровно одна связанная компонента). Пилообразная перестановка - перестановка $p$, такая что её члены по очереди возрастают и убывают.($p_1 < p_2 > p_3 < p_4 ...$ или $p_1 > p_2 < p_3 > p_4 ...$)
Формат входного файла
Вам дано одно целое число $n$.
Формат выходного файла
Выведите любую подходящую перестановку.
Система оценки
Данная задача содержит ровно $10$ тестов и каждый оценивается в $10$ баллов.
  1. $n = 4$
  2. $n = 5$
  3. $n = 10$
  4. $n = 11$
  5. $n = 20$
  6. $n = 21$
  7. $n = 2019$
  8. $n = 2020$
  9. $n = 12345$
  10. $n = 123456$
Пример:
Вход
4
Ответ
3 1 4 2 
( Batyr Sardarbekov )
посмотреть в олимпиаде

Комментарий/решение:

пред. Правка 2   -1
2020-01-13 13:52:42.0 #

пред. Правка 5   1
2020-01-13 13:52:30.0 #

показать/скрыть код

  0
2020-01-14 18:13:17.0 #

не могу понять почему неправильно, объясните если не прав

#include <iostream>

using namespace std;

int main() {

int n;

cin>>n;

int a[n+1];

a[1] = 1;

a[2] = 3;

a[3] = 2;

for(int i=4; i<=n; i++){

if(i%2==0){

a[i] = i;

}else {

a[i] = i-1;

a[i-1] = i;

}

}

cout<<a[1];

for(int i=2; i<=n; i++) cout<<" "<<a[i];

return 0;

}

  0
2020-07-28 15:39:27.0 #

jilnash(походу твой ответ должен совпадать с ответом теста) :/

  0
2020-11-16 17:55:01.0 #

Последовательность получается не циклической, потому что вершина 1 становится отдельной компонентой потому что ребро ведет само в себя