Advertisement
gride29

wersja1

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