Advertisement
gride29

Wydarzenia_Dynamiczne

Nov 18th, 2020
224
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.59 KB | None | 0 0
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5.  
  6. namespace Zadanie2
  7. {
  8.     class Wydarzenia : IComparable<Wydarzenia>
  9.     {
  10.         string nazwa;
  11.         public double poczatek;
  12.         public double koniec;
  13.         public int profit = 1;
  14.  
  15.         public Wydarzenia(string nazwa, double poczatek, double koniec)
  16.         {
  17.             this.nazwa = nazwa;
  18.             this.poczatek = poczatek;
  19.             this.koniec = koniec;
  20.         }
  21.  
  22.         public override string ToString()
  23.         {
  24.             return nazwa + " Poczatek: " + poczatek + " Koniec: " + koniec;
  25.         }
  26.  
  27.         public int CompareTo(Wydarzenia doPosortowania)
  28.         {
  29.             return koniec.CompareTo(doPosortowania.koniec);
  30.         }
  31.     }
  32.  
  33.     class Program
  34.     {
  35.         static List<Wydarzenia> WybraneWydarzenia(List<Wydarzenia> wszystkieWydarzenia)
  36.         {
  37.             List<List<Wydarzenia>> L = new List<List<Wydarzenia>>();
  38.  
  39.             wszystkieWydarzenia.Sort();
  40.  
  41.             foreach (var wydarzenie in wszystkieWydarzenia)
  42.             {
  43.                 L.Add(new List<Wydarzenia>());
  44.             }
  45.            
  46.  
  47.             for (int i = 0; i < wszystkieWydarzenia.Count; ++i)
  48.             {
  49.                 for (int j = 0; j < i; j++)
  50.                 {
  51.                     if (wszystkieWydarzenia[j].koniec < wszystkieWydarzenia[i].poczatek && L[i].Count < L[j].Count)
  52.                     {
  53.                         L[i] = new List<Wydarzenia>(L[j]);
  54.                     }
  55.                 }
  56.                 L[i].Add(wszystkieWydarzenia[i]);
  57.             }
  58.  
  59.             List<Wydarzenia> max = L[0];
  60.  
  61.             for (int i = 0; i < L.Count; i++)
  62.             {
  63.                 if (L[i].Count > max.Count)
  64.                 {
  65.                     max = L[i];
  66.                 }
  67.             }
  68.  
  69.             return max;
  70.         }
  71.  
  72.  
  73.         static void Main(string[] args)
  74.         {
  75.             List<Wydarzenia> wszystkieWydarzenia = new List<Wydarzenia>()
  76.             {
  77.                 new Wydarzenia("Sprint na 100m", 12.0, 13.0),
  78.                 new Wydarzenia("Pływanie", 10.0, 12.0),
  79.                 new Wydarzenia("Skok w dal", 11.0, 14.0),
  80.                 new Wydarzenia("Pchniecie kulą", 15.0, 17.0),
  81.                 new Wydarzenia("Maraton", 15.0, 17.0),
  82.             };
  83.  
  84.             List<Wydarzenia> wynik = WybraneWydarzenia(wszystkieWydarzenia);
  85.  
  86.             foreach (Wydarzenia wydarzenie in wynik)
  87.             {
  88.                 Console.WriteLine(wydarzenie);
  89.             }
  90.  
  91.             Console.ReadKey();
  92.         }
  93.     }
  94. }
  95.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement