Advertisement
coloriot

HA20

Aug 23rd, 2024
23
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.44 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. // Решение задачи с уникальными отрезками
  6.  
  7. int max(int a, int b) {
  8.     return (a > b) ? a : b;
  9. }
  10.  
  11. int main() {
  12.     int N;
  13.     std::cin >> N;
  14.  
  15.     int* a = new int[N];
  16.     int* b = new int[N];
  17.     int* C = new int[N]; // Здесь храним максимальные значения
  18.  
  19.     // Заполним C нулями
  20.     for (int i = 0; i < N; ++i) {
  21.         C[i] = 0;
  22.     }
  23.  
  24.     // Заполним массивы значениями
  25.     for (int i = 0; i < N; ++i) {
  26.         std::cin >> a[i] >> b[i];
  27.     }
  28.  
  29.     // Заполним значениями массив C
  30.     for (int i = 0; i < N; ++i) {
  31.         if (a[i] != b[i]) {
  32.             C[i] = max(a[i], b[i]);
  33.         }
  34.     }
  35.  
  36.     // Создаем переменную для непересекающихся отрезков
  37.     int notIntersect = 0;
  38.  
  39.     // Третий цикл: проверяем только непересекающиеся отрезки
  40.     for (int i = 0; i < N; ++i) {
  41.         bool intersect = false;
  42.         for (int j = 0; j < N; ++j) {
  43.             if (i != j && !(b[i] < a[j] || a[i] > b[j])) {
  44.                 intersect = true;
  45.                 break;
  46.             }
  47.         }
  48.         if (!intersect) {
  49.             notIntersect++;
  50.         }
  51.     }
  52.  
  53.     cout << notIntersect;
  54.  
  55.     delete[] a;
  56.     delete[] b;
  57.     delete[] C;
  58.  
  59.     return 0;
  60. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement