Решение задачи Поверните прямоугольники с Codeforces

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


В ряд стоят n прямоугольников. Каждый из них вы можете либо повернуть на 90 градусов, либо оставить как есть. Если вы поворачиваете прямоугольник, то его высота станет шириной, а ширина — высотой. Заметьте, что вы можете повернуть любое количество прямоугольников, а так же вы можете повернуть все или не поворачивать ни один. Вы не можете менять порядок следования прямоугольников.

Определите, можно ли повернуть прямоугольники так, что они станут идти в порядке невозрастания высоты. Иными словами, после всех поворотов высота следующего прямоугольника должна быть меньше или равна высоте предыдущего (если такой есть).

Код

#include <algorithm>
#include <iostream>

using namespace std;

const int INF = 0x3f3f3f3f;

int main() {
	int n; cin >> n;
	int x = INF;
	while (n--) {
		int a, b; cin >> a >> b;
		if (a < b)
			swap(a, b);
		if (x >= a)
			x = a;
		else if (x >= b)
			x = b;
		else {
			cout << "NO\n";
			return 0;
		}
	}
	cout << "YES\n";
	return 0;
}

         

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



Комментарии

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