Решение задачи "Почти равные" с Codeforces

Без пояснения   Просмотров: 10


Дано целое положительное число n. Нужно расставить числа от 1 до 2n по кругу таким образом, чтобы выполнялось следующее условие:

Для каждых n последовательных чисел на окружности выпишем на доску их сумму. Тогда любые два из выписанных на доске 2n чисел отличаются не более, чем на 1.

К примеру, выберем n=3. Слева вы можете увидеть пример правильной расстановки:1+4+5=10, 4+5+2=11, 5+2+3=10, 2+3+6=11, 3+6+1=10, 6+1+4=11, любые два числа отличаются не более чем на 1. Справа вы можете увидеть неправильную расстановку: к примеру, 5+1+6=12, а 3+2+4=9, 9 и 12 отличаются более чем на 1.

Код

#include<bits/stdc++.h>
using namespace std;
int n,m;
int main(){
	ios::sync_with_stdio(false);
	cin >> n;
	if(n%2==0) return cout << "NO\n",0;
	cout << "YES\n";
	for(int i=1; i<=n ;i++){
		cout << 2*i-i%2 << ' ';
	}
	for(int i=1; i<=n ;i++){
		cout << 2*i+i%2-1 << ' ';
	}
}

         

 Администратор Photo Автор: Администратор


Отправить решение задачи
Чтобы отправить решение вам нужно войти в систему или зарегистрироваться

Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться