Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- int main() {
- int N;
- cin >> N;
- int* a = new int[N]; // Начало
- int* b = new int[N]; // Конец
- for (int i = 0; i < N; ++i) {
- cin >> a[i] >> b[i];
- }
- int nonIntersectingCount = 0; // Переменная для подсчета непересекающихся отрезков
- // Внешний цикл проходит по каждому отрезку
- for (int i = 0; i < N; ++i) {
- bool intersects = false; // пересекается ли текущий отрезок
- // Внутренний цикл проходит по всем отрезкам для проверки пересечений
- for (int j = 0; j < N; ++j) {
- if (i != j) { // Проверяем только разные отрезки
- // Условие пересечения отрезков
- if ((a[i] < a[j] && b[i] > b[j]) || // Первый случай пересечения
- (a[i] > a[j] && b[i] < b[j]) || // Второй случай пересечения
- (a[i] == a[j] || b[i] == b[j])) { // Третий случай пересечения (одинаковые концы)
- intersects = true; // Буль пересечения
- break; // Прерываем внутренний цикл, если найдено пересечение
- }
- }
- }
- // Если текущий отрезок не пересекается ни с одним другим, увеличиваем счетчик
- if (!intersects) {
- nonIntersectingCount++;
- }
- }
- cout << nonIntersectingCount << endl;
- delete[] a;
- delete[] b;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement