https://www.acmicpc.net/problem/25184
티어 - Silver 4
알고리즘 분류 - 구성적
나의 해결 방안 - ?
문제
길이가 인 동가수열은 다음 두 조건을 만족하는 수열이다.
동가수열은 이상 이하인 정수로 이루어져 있고, 모든 원소는 서로 다르다.
동가수열의 서로 이웃한 원소의 차는 이상이다.
길이가 인 동가수열을 아무거나 하나 구해보자. 주어지는 모든 입력에 대해 동가수열은 항상 존재한다.
입력
첫째 줄에 구하고자 하는 동가수열의 길이 ()이 주어진다.
출력
첫째 줄에 길이가 인 동가수열을 아무거나 하나 출력한다. 동가수열은 공백으로 구분해서 출력해야 한다.
#include <iostream>
using namespace std;
int main(void) {
ios_base::sync_with_stdio(0);
int n; cin >> n;
if (n<=4) {
if (n==1) cout << 1;
else if (n==2) cout << "1 2";
else if (n==3) cout << "1 2 3";
else cout << "2 4 1 3";
return 0;
}
if (n%2==1) {
cout << 1 << " " << n/2+1 << " " << n;
for(int i=n/2;i>=2;i--) {
cout << " " << i << " " << i+n/2;
}
}
else {
for(int i=n/2;i>=1;i--) cout << i << " " << i+n/2 << " ";
}
}