Advertisement
Layvu

Complex2

Nov 24th, 2022
30
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.53 KB | None | 0 0
  1. using System;
  2. using System.Collections;
  3.  
  4. namespace ConsoleApp1
  5. {
  6.     class Interval
  7.     {
  8.         public int Start;
  9.         public int End;
  10.         public int GetLength()
  11.         {
  12.             return End - Start + 1;
  13.         }
  14.         private bool IsXInInterval(Interval i1, Interval i2)
  15.         {
  16.             return (i1.Start < i2.Start && i2.Start < i1.End) || (i1.Start < i2.End && i2.End < i1.End);
  17.         }
  18.         public bool IsIntersecting(Interval secondInterval)
  19.         {
  20.             return IsXInInterval(this, secondInterval) || IsXInInterval(secondInterval, this) ? true : false;
  21.         }
  22.     }
  23.  
  24.     class IntervalComparer : IComparer
  25.     {
  26.         public int Compare(object obj1, object obj2)
  27.         {
  28.             var firstInterval = (Interval)obj1;
  29.             var secondInterval = (Interval)obj2;
  30.             return firstInterval.Start.CompareTo(secondInterval.Start);
  31.         }
  32.     }
  33.  
  34.     class Program
  35.     {
  36.         static void Main()
  37.         {
  38.             int N = 4;
  39.             var intervals = new Interval[N];
  40.             var answer = false;
  41.  
  42.             for (int i = 0; i < N; i++)
  43.             {
  44.                 Interval interval = new Interval();
  45.                 var inputLine = Console.ReadLine().Split(' ');
  46.                 interval.Start = int.Parse(inputLine[0]);
  47.                 interval.End = int.Parse(inputLine[1]);
  48.                 intervals[i] = interval;
  49.             }
  50.  
  51.             Array.Sort(intervals, new IntervalComparer());
  52.  
  53.             foreach (var firstInterval in intervals)
  54.                 foreach (var secondInterval in intervals)
  55.                 {
  56.                     if (firstInterval != secondInterval)
  57.                     {
  58.                         if (firstInterval.IsIntersecting(secondInterval))
  59.                             answer = true;
  60.                     }
  61.                     if (answer) break;
  62.                 }
  63.             Console.WriteLine(answer);
  64.         }
  65.     }
  66. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement