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