Module Module1 Structure TChat Dim Kezdet, Vég As Integer Dim Név1, Név2 As Integer End Structure Dim Tömb() As HashSet(Of Integer) Dim Nevek() As String Dim N, M As Integer Dim Besz As TChat Dim Beszélgetések() As TChat Sub Main() Dim Be As New IO.StreamReader("cseveges.txt") N = Be.ReadLine ReDim Tömb(N) ReDim Nevek(N) For i = 1 To N Tömb(i) = New HashSet(Of Integer) Next Dim Név As String For i = 1 To N Név = Be.ReadLine Nevek(i) = Név Next M = Be.ReadLine ReDim Beszélgetések(M) Dim Temp() As String For i = 1 To M Temp = Be.ReadLine.Split With Besz .Kezdet = Temp(0) .Vég = Temp(1) Dim g As Integer g = 1 Do While Nevek(g) <> Temp(2) g += 1 Loop .Név1 = g Dim f As Integer f = 1 Do While Nevek(f) <> Temp(3) f += 1 Loop .Név2 = f Beszélgetések(i) = Besz End With Next Dim Ki As New IO.StreamWriter("cseveges.ki") '2, Dim Átlag As Integer Átlag = 0 Console.Write("2.feladat") Console.ReadLine() For i = 1 To M With Beszélgetések(i) Átlag += (.Vég - .Kezdet) End With Next Átlag = Átlag * 100 / M 'Ki.WriteLine(Átlag / 100) Console.Write(Átlag / 100) Console.ReadLine() '3, Console.Write("3.feladat") Console.ReadLine() Dim MegAdottNév As String Console.WriteLine("Add meg egy beszélgető nevét!") MegAdottNév = Console.ReadLine() Dim Kinek As Integer Dim Hossz As Integer Dim vélszám As New Random Hossz = 0 For i = 1 To N If Nevek(i) = MegAdottNév Then Kinek = i Exit For End If Next For i = 1 To M If Beszélgetések(i).Név1 = Kinek Then Hossz += (Beszélgetések(i).Vég - Beszélgetések(i).Kezdet) End If If Beszélgetések(i).Név2 = Kinek Then Hossz += (Beszélgetések(i).Vég - Beszélgetések(i).Kezdet) End If Next 'Ki.WriteLine(Hossz) Console.Write(Hossz) Console.ReadLine() '4, Console.Write("4.feladat") Console.ReadLine() Dim Db As Integer Db = 0 For i = 1 To M - 1 For j = i + 1 To M If Beszélgetések(i).Név1 >= Beszélgetések(j).Név1 Then Besz = Beszélgetések(i) Beszélgetések(i) = Beszélgetések(j) Beszélgetések(j) = Besz End If Next Next For i = 1 To M - 1 For j = i + 1 To M If Beszélgetések(i).Név1 = Beszélgetések(j).Név1 Then If Beszélgetések(i).Kezdet >= Beszélgetések(j).Kezdet Then Besz = Beszélgetések(i) Beszélgetések(i) = Beszélgetések(j) Beszélgetések(j) = Besz End If End If Next Next For i = 1 To M - 1 If Beszélgetések(i).Név1 = Beszélgetések(i + 1).Név1 Then If Beszélgetések(i).Név2 = Beszélgetések(i + 1).Név2 Then Db += 1 End If End If Next 'Ki.WriteLine(Db) Console.Write(Db) Console.ReadLine() '5, Console.Write("5.feladat") Console.ReadLine() For i = 1 To M For j = 1 To N If Beszélgetések(i).Név1 = j Then Nevek(j) = "" End If If Beszélgetések(i).Név2 = j Then Nevek(j) = "" End If Next Next Dim KikAzok As String = "" For i = 1 To N If Nevek(i) <> "" Then KikAzok &= Nevek(i) & " " 'Ki.Write(Nevek(i) & " ") End If Next 'Ki.WriteLine() Console.Write(KikAzok) Console.ReadLine() '6, Console.Write("6.feladat") Console.ReadLine() Dim Idő() As Integer Dim MaxVég As Integer Dim MaxSzünet, VégSzünet, Szünet As Integer MaxVég = 0 MaxSzünet = 0 For i = 1 To M If MaxVég < Beszélgetések(i).Vég Then MaxVég = Beszélgetések(i).Vég End If Next ReDim Idő(MaxVég) For i = 1 To M For j = Beszélgetések(i).Kezdet To Beszélgetések(i).Vég Idő(j) = 1 Next Next For i = 1 To MaxVég If Idő(i) = 0 Then Szünet += 1 Else If Szünet > MaxSzünet Then MaxSzünet = Szünet VégSzünet = i - 1 End If Szünet = 0 End If Next 'Ki.WriteLine((VégSzünet - MaxSzünet + 1) & " " & VégSzünet) If VégSzünet = 0 Then Console.Write("Kezdet: " & "0") Console.WriteLine() Console.Write("Vég: " & "0") Else Console.Write("Kezdet: " & (VégSzünet - MaxSzünet + 1)) Console.WriteLine() Console.Write("Vég: " & VégSzünet) End If Console.ReadLine() '7, Console.Write("7.feladat") Console.ReadLine() Dim Kmax As Integer Dim Halmaz As HashSet(Of Integer) Kmax = Math.Ceiling(MaxVég / 60) For k = 1 To Kmax Halmaz = New HashSet(Of Integer) For i = 1 To M If Beszélgetések(i).Kezdet <= (k * 60) And Beszélgetések(i).Kezdet >= ((k - 1) * 60) Then Halmaz.Add(Beszélgetések(i).Név1) Halmaz.Add(Beszélgetések(i).Név2) ElseIf Beszélgetések(i).Vég <= (k * 60) And Beszélgetések(i).Vég >= ((k - 1) * 60) Then Halmaz.Add(Beszélgetések(i).Név1) Halmaz.Add(Beszélgetések(i).Név2) End If Next 'Ki.WriteLine(k & ". órában: " & Halmaz.Count) Console.WriteLine(k & ". órában: " & Halmaz.Count) Next Console.ReadLine() '8, Console.Write("8.feladat") Console.ReadLine() Dim Sokan() As HashSet(Of Integer) ReDim Sokan(MaxVég) For i = 0 To MaxVég Sokan(i) = New HashSet(Of Integer) Next For i = 0 To M For j = Beszélgetések(i).Kezdet To Beszélgetések(i).Vég Sokan(j).Add(Beszélgetések(i).Név1) Sokan(j).Add(Beszélgetések(i).Név2) Next Next Dim Maxtag, Mikor As Integer Maxtag = 0 Mikor = -1 For i = 1 To MaxVég If MaxTag < Sokan(i).Count Then Maxtag = Sokan(i).Count Mikor = i End If Next 'Ki.WriteLine(Mikor) Console.Write(Mikor) Console.ReadLine() '9, Console.WriteLine("9.feladat") Console.Write("Nincs megoldásom.") Console.ReadLine() 'Dim Lista1(N) As List(Of Integer) 'For i = 1 To N ' Lista1(i) = (New List(Of Integer)) 'Next 'For i = 1 To N ' For j = 1 To M ' If Beszélgetések(j).Név1 = i Then ' Lista1(i)(Beszélgetések(j).Név2) = Beszélgetések(j).Vég - Beszélgetések(j).Kezdet + 1 ' ElseIf Beszélgetések(j).Név2 = i Then ' Lista1(i)(Beszélgetések(j).Név1) = Beszélgetések(j).Vég - Beszélgetések(j).Kezdet + 1 ' End If ' Next 'Next 'For i = 1 To N ' Console.WriteLine(Nevek(i) & Nevek(Lista1(i).Max) & " barátjával") 'Next 'Console.ReadLine() 'Ki.Close() End Sub End Module