Решение задачи Ярослав и перестановки с Codeforces

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


У Ярослава есть массив, состоящий из n целых чисел. За одну секунду Ярослав может поменять местами два рядом стоящих элемента массива. Сейчас Ярослава интересует вопрос: может ли он за конечное время получить массив, в котором любые два соседних элемента различны?

Помогите Ярославу.

Код

#include <iostream>
#include <map>
using namespace std;

int main(){
	int n;
	cin >> n;
	map <int, int> m;
	for(int i = 0; i < n; i++){
		int a;
		cin >> a;
		m[a]++;
		if(m[a] > (n + 1) / 2){
			cout << "NO";
			return 0;
		}
	}
	cout << "YES";
	return 0;
}

         

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



Комментарии

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