Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- namespace Algorytm_WydarzeniaDynamiczne
- {
- class Wydarzenia : IComparable<Wydarzenia>
- {
- string nazwa;
- public double poczatek;
- public double koniec;
- public int profit = 1;
- public Wydarzenia(string nazwa, double poczatek, double koniec)
- {
- this.nazwa = nazwa;
- this.poczatek = poczatek;
- this.koniec = koniec;
- }
- public override string ToString()
- {
- return nazwa + " Poczatek: " + poczatek + " Koniec: " + koniec;
- }
- public int CompareTo(Wydarzenia doPosortowania)
- {
- return koniec.CompareTo(doPosortowania.koniec);
- }
- }
- class Program
- {
- static List<Wydarzenia> WybraneWydarzenia(List<Wydarzenia> wszystkieWydarzenia)
- {
- List<List<Wydarzenia>> L = new List<List<Wydarzenia>>();
- wszystkieWydarzenia.Sort();
- foreach (var wydarzenie in wszystkieWydarzenia)
- {
- L.Add(new List<Wydarzenia>());
- }
- for (int i = 0; i < wszystkieWydarzenia.Count; ++i)
- {
- for (int j = 0; j < i; j++)
- {
- if (wszystkieWydarzenia[j].koniec < wszystkieWydarzenia[i].poczatek && L[i].Count < L[j].Count)
- {
- L[i] = new List<Wydarzenia>(L[j]);
- }
- }
- L[i].Add(wszystkieWydarzenia[i]);
- }
- List<Wydarzenia> max = L[0];
- for (int i = 0; i < L.Count; i++)
- {
- if (L[i].Count > max.Count)
- {
- max = L[i];
- }
- }
- return max;
- }
- static void Main(string[] args)
- {
- List<Wydarzenia> wszystkieWydarzenia = new List<Wydarzenia>()
- {
- new Wydarzenia("Sprint na 100m", 12.0, 13.0),
- new Wydarzenia("Pływanie", 10.0, 12.0),
- new Wydarzenia("Skok w dal", 11.0, 14.0),
- new Wydarzenia("Pchniecie kulą", 15.0, 17.0),
- new Wydarzenia("Maraton", 15.0, 17.0),
- };
- List<Wydarzenia> wynik = WybraneWydarzenia(wszystkieWydarzenia);
- foreach (Wydarzenia wydarzenie in wynik)
- {
- Console.WriteLine(wydarzenie);
- }
- Console.ReadKey();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement