might solved feladat 4

This commit is contained in:
szabomarton 2025-03-14 09:18:00 +01:00
parent 125039f7af
commit 4287c44e6e
49 changed files with 256 additions and 31 deletions
.vs
fordulo_1/Program/obj
fordulo_2/Program/obj
fordulo_3/Program
megoldasok.md

View File

@ -0,0 +1,9 @@
{
"ExpandedNodes": [
"",
"\\fordulo_3",
"\\fordulo_3\\Program"
],
"SelectedNode": "\\fordulo_3\\Program\\Program.cs",
"PreviewInSolutionExplorer": false
}

BIN
.vs/Verseny/v17/.wsuo Normal file

Binary file not shown.

View File

@ -0,0 +1,12 @@
{
"Version": 1,
"WorkspaceRootPath": "C:\\Users\\szabomarton\\Desktop\\Verseny\\",
"Documents": [],
"DocumentGroupContainers": [
{
"Orientation": 0,
"VerticalTabListWidth": 256,
"DocumentGroups": []
}
]
}

View File

@ -0,0 +1,12 @@
{
"Version": 1,
"WorkspaceRootPath": "C:\\Users\\szabomarton\\Desktop\\Verseny\\",
"Documents": [],
"DocumentGroupContainers": [
{
"Orientation": 0,
"VerticalTabListWidth": 256,
"DocumentGroups": []
}
]
}

BIN
.vs/slnx.sqlite Normal file

Binary file not shown.

View File

@ -1,6 +1,7 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
@ -13,7 +14,7 @@ using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("Program")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+dc971298b8cb50b3964136e51880e4b38a03bd9f")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+125039f7afa4d55f84ae92ca8bb5d680c96dddaa")]
[assembly: System.Reflection.AssemblyProductAttribute("Program")]
[assembly: System.Reflection.AssemblyTitleAttribute("Program")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]

View File

@ -1 +1 @@
1f36a25f79f6a9f6f095f37aae6480c14a96c8f4edc9dee92182a5a1fce682b7
fa1dd1337108d86b90c993aeca956532f3929d3df42ce60dbfe44b7b4331a5d0

View File

@ -8,7 +8,7 @@ build_property.PlatformNeutralAssembly =
build_property.EnforceExtendedAnalyzerRules =
build_property._SupportedPlatformList = Linux,macOS,Windows
build_property.RootNamespace = Program
build_property.ProjectDir = E:\Házi\13.osztály\Neumann_Verseny\fordulo_1\Program\
build_property.ProjectDir = C:\Users\szabomarton\Desktop\Verseny\fordulo_1\Program\
build_property.EnableComHosting =
build_property.EnableGeneratedComInterfaceComImportInterop =
build_property.EffectiveAnalysisLevelStyle = 9.0

View File

@ -0,0 +1,4 @@
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v9.0", FrameworkDisplayName = ".NET 9.0")]

View File

@ -0,0 +1,23 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("Program")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Release")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+125039f7afa4d55f84ae92ca8bb5d680c96dddaa")]
[assembly: System.Reflection.AssemblyProductAttribute("Program")]
[assembly: System.Reflection.AssemblyTitleAttribute("Program")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
// Generated by the MSBuild WriteCodeFragment class.

View File

@ -0,0 +1 @@
f906cfd11295328e105ea96075df17757f03b97601f6554b3ba2d5440a6c9a31

View File

@ -0,0 +1,15 @@
is_global = true
build_property.TargetFramework = net9.0
build_property.TargetPlatformMinVersion =
build_property.UsingMicrosoftNETSdkWeb =
build_property.ProjectTypeGuids =
build_property.InvariantGlobalization =
build_property.PlatformNeutralAssembly =
build_property.EnforceExtendedAnalyzerRules =
build_property._SupportedPlatformList = Linux,macOS,Windows
build_property.RootNamespace = Program
build_property.ProjectDir = C:\Users\szabomarton\Desktop\Verseny\fordulo_1\Program\
build_property.EnableComHosting =
build_property.EnableGeneratedComInterfaceComImportInterop =
build_property.EffectiveAnalysisLevelStyle = 9.0
build_property.EnableCodeStyleSeverity =

View File

@ -0,0 +1,8 @@
// <auto-generated/>
global using global::System;
global using global::System.Collections.Generic;
global using global::System.IO;
global using global::System.Linq;
global using global::System.Net.Http;
global using global::System.Threading;
global using global::System.Threading.Tasks;

View File

@ -0,0 +1,4 @@
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")]

View File

@ -1,13 +1,13 @@
{
"Version": 1,
"WorkspaceRootPath": "E:\\H\u00E1zi\\13.oszt\u00E1ly\\Neumann_Verseny\\fordulo_3\\Program\\",
"WorkspaceRootPath": "C:\\Users\\szabomarton\\Desktop\\Verseny\\fordulo_3\\Program\\",
"Documents": [
{
"AbsoluteMoniker": "D:0:0:{6A74A9DE-500D-46FF-859A-18F4A752D2A5}|Program.csproj|E:\\H\u00E1zi\\13.oszt\u00E1ly\\Neumann_Verseny\\fordulo_3\\Program\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"AbsoluteMoniker": "D:0:0:{6A74A9DE-500D-46FF-859A-18F4A752D2A5}|Program.csproj|c:\\users\\szabomarton\\desktop\\verseny\\fordulo_3\\program\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{6A74A9DE-500D-46FF-859A-18F4A752D2A5}|Program.csproj|solutionrelative:program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{6A74A9DE-500D-46FF-859A-18F4A752D2A5}|Program.csproj|e:\\h\u00E1zi\\13.oszt\u00E1ly\\neumann_verseny\\fordulo_3\\program\\virus.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"AbsoluteMoniker": "D:0:0:{6A74A9DE-500D-46FF-859A-18F4A752D2A5}|Program.csproj|C:\\Users\\szabomarton\\Desktop\\Verseny\\fordulo_3\\Program\\virus.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{6A74A9DE-500D-46FF-859A-18F4A752D2A5}|Program.csproj|solutionrelative:virus.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
}
],
@ -24,11 +24,11 @@
"$type": "Document",
"DocumentIndex": 0,
"Title": "Program.cs",
"DocumentMoniker": "E:\\H\u00E1zi\\13.oszt\u00E1ly\\Neumann_Verseny\\fordulo_3\\Program\\Program.cs",
"DocumentMoniker": "C:\\Users\\szabomarton\\Desktop\\Verseny\\fordulo_3\\Program\\Program.cs",
"RelativeDocumentMoniker": "Program.cs",
"ToolTip": "E:\\H\u00E1zi\\13.oszt\u00E1ly\\Neumann_Verseny\\fordulo_3\\Program\\Program.cs",
"ToolTip": "C:\\Users\\szabomarton\\Desktop\\Verseny\\fordulo_3\\Program\\Program.cs",
"RelativeToolTip": "Program.cs",
"ViewState": "AgIAABwAAAAAAAAAAAAIwCcAAAAiAAAAAAAAAA==",
"ViewState": "AgIAAGgAAAAAAAAAAAAwwHsAAAAkAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-03-12T12:54:16.847Z",
"EditorCaption": ""
@ -37,11 +37,11 @@
"$type": "Document",
"DocumentIndex": 1,
"Title": "Virus.cs",
"DocumentMoniker": "E:\\H\u00E1zi\\13.oszt\u00E1ly\\Neumann_Verseny\\fordulo_3\\Program\\Virus.cs",
"DocumentMoniker": "C:\\Users\\szabomarton\\Desktop\\Verseny\\fordulo_3\\Program\\Virus.cs",
"RelativeDocumentMoniker": "Virus.cs",
"ToolTip": "E:\\H\u00E1zi\\13.oszt\u00E1ly\\Neumann_Verseny\\fordulo_3\\Program\\Virus.cs",
"ToolTip": "C:\\Users\\szabomarton\\Desktop\\Verseny\\fordulo_3\\Program\\Virus.cs",
"RelativeToolTip": "Virus.cs",
"ViewState": "AgIAAAAAAAAAAAAAAAAAADIAAAABAAAAAAAAAA==",
"ViewState": "AgIAACMAAAAAAAAAAAAIwDAAAAAJAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-03-13T16:14:18.948Z",
"EditorCaption": ""

View File

@ -1,13 +1,13 @@
{
"Version": 1,
"WorkspaceRootPath": "E:\\H\u00E1zi\\13.oszt\u00E1ly\\Neumann_Verseny\\fordulo_3\\Program\\",
"WorkspaceRootPath": "C:\\Users\\szabomarton\\Desktop\\Verseny\\fordulo_3\\Program\\",
"Documents": [
{
"AbsoluteMoniker": "D:0:0:{6A74A9DE-500D-46FF-859A-18F4A752D2A5}|Program.csproj|E:\\H\u00E1zi\\13.oszt\u00E1ly\\Neumann_Verseny\\fordulo_3\\Program\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"AbsoluteMoniker": "D:0:0:{6A74A9DE-500D-46FF-859A-18F4A752D2A5}|Program.csproj|c:\\users\\szabomarton\\desktop\\verseny\\fordulo_3\\program\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{6A74A9DE-500D-46FF-859A-18F4A752D2A5}|Program.csproj|solutionrelative:program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{6A74A9DE-500D-46FF-859A-18F4A752D2A5}|Program.csproj|e:\\h\u00E1zi\\13.oszt\u00E1ly\\neumann_verseny\\fordulo_3\\program\\virus.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"AbsoluteMoniker": "D:0:0:{6A74A9DE-500D-46FF-859A-18F4A752D2A5}|Program.csproj|C:\\Users\\szabomarton\\Desktop\\Verseny\\fordulo_3\\Program\\virus.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{6A74A9DE-500D-46FF-859A-18F4A752D2A5}|Program.csproj|solutionrelative:virus.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
}
],
@ -24,11 +24,11 @@
"$type": "Document",
"DocumentIndex": 0,
"Title": "Program.cs",
"DocumentMoniker": "E:\\H\u00E1zi\\13.oszt\u00E1ly\\Neumann_Verseny\\fordulo_3\\Program\\Program.cs",
"DocumentMoniker": "C:\\Users\\szabomarton\\Desktop\\Verseny\\fordulo_3\\Program\\Program.cs",
"RelativeDocumentMoniker": "Program.cs",
"ToolTip": "E:\\H\u00E1zi\\13.oszt\u00E1ly\\Neumann_Verseny\\fordulo_3\\Program\\Program.cs",
"ToolTip": "C:\\Users\\szabomarton\\Desktop\\Verseny\\fordulo_3\\Program\\Program.cs",
"RelativeToolTip": "Program.cs",
"ViewState": "AgIAAD8AAAAAAAAAAAAcwCcAAAAiAAAAAAAAAA==",
"ViewState": "AgIAAGgAAAAAAAAAAAAwwHsAAAAkAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-03-12T12:54:16.847Z",
"EditorCaption": ""
@ -37,11 +37,11 @@
"$type": "Document",
"DocumentIndex": 1,
"Title": "Virus.cs",
"DocumentMoniker": "E:\\H\u00E1zi\\13.oszt\u00E1ly\\Neumann_Verseny\\fordulo_3\\Program\\Virus.cs",
"DocumentMoniker": "C:\\Users\\szabomarton\\Desktop\\Verseny\\fordulo_3\\Program\\Virus.cs",
"RelativeDocumentMoniker": "Virus.cs",
"ToolTip": "E:\\H\u00E1zi\\13.oszt\u00E1ly\\Neumann_Verseny\\fordulo_3\\Program\\Virus.cs",
"ToolTip": "C:\\Users\\szabomarton\\Desktop\\Verseny\\fordulo_3\\Program\\Virus.cs",
"RelativeToolTip": "Virus.cs",
"ViewState": "AgIAAAMAAAAAAAAAAAAAADIAAAABAAAAAAAAAA==",
"ViewState": "AgIAACMAAAAAAAAAAAAIwDAAAAAJAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-03-13T16:14:18.948Z",
"EditorCaption": ""

View File

@ -11,8 +11,15 @@ namespace Program
{
public static Dictionary<int, List<int>> Contacts = new Dictionary<int, List<int>>();
public static HashSet<int> InfectedPeople = new HashSet<int>();
public static List<int> uniquePeople = new List<int>();
public static HashSet<int> NewInfectedPeople = new HashSet<int>();
static void Main(string[] args)
{
Previous();
}
public static void ListAllInfectionTreeVoid()
{
string path = $@"../../../forrasok/elek.txt";
@ -24,6 +31,83 @@ namespace Program
int infector = Convert.ToInt32(nums[0]);
int infected = Convert.ToInt32(nums[1]);
if (!uniquePeople.Contains(infector))
{
uniquePeople.Add(infector);
}
if (!uniquePeople.Contains(infected))
{
uniquePeople.Add(infected);
}
if (Contacts.ContainsKey(infector))
{
Contacts[infector].Add(infected);
}
else
{
Contacts[infector] = new List<int> { infected };
}
}
InfectedPeople.Clear(); // Clear the set before starting the spread
int infectionTreeCount = 0;
// Spread the virus starting from each unique person if they are not already infected
foreach (var person in uniquePeople)
{
if (!InfectedPeople.Contains(person))
{
infectionTreeCount++;
Virus rootVirus = new Virus(person);
InfectedPeople.Add(person); // Add the root virus to the infected set
SpreadBFS(rootVirus, int.MaxValue); // Spread without depth limit
}
}
Console.WriteLine($"Infected people count: {InfectedPeople.Count}");
Console.WriteLine($"Unique people count: {uniquePeople.Count}");
Console.WriteLine($"Number of infection trees: {infectionTreeCount}");
// Verify if all unique people are infected
bool allInfected = uniquePeople.All(person => InfectedPeople.Contains(person));
Console.WriteLine($"All unique people infected: {allInfected}");
if (!allInfected)
{
var notInfected = uniquePeople.Where(person => !InfectedPeople.Contains(person)).ToList();
Console.WriteLine("People not infected:");
foreach (var person in notInfected)
{
Console.WriteLine(person);
}
}
}
public static void Previous()
{
string path = $@"../../../forrasok/elek.txt";
var data = File.ReadAllLines(path);
foreach (var item in data)
{
string[] nums = item.Split(' ');
int infector = Convert.ToInt32(nums[0]);
int infected = Convert.ToInt32(nums[1]);
if (!uniquePeople.Contains(infector))
{
uniquePeople.Add(infector);
}
if (!uniquePeople.Contains(infected))
{
uniquePeople.Add(infected);
}
if (Contacts.ContainsKey(infector))
{
Contacts[infector].Add(infected);
@ -37,13 +121,43 @@ namespace Program
Virus rootVirus = new Virus(2);
InfectedPeople.Clear(); // Clear the set before starting the spread
InfectedPeople.Add(2); // Add the root virus to the infected set
SpreadBFS(rootVirus, 2);
//Spread(rootVirus, 9);
SpreadBFS(rootVirus, 5);
//Spread(rootVirus, 15);
//rootVirus.PrintInfectionTreeWithDepth(2, 0, "->");
rootVirus.PrintInfectionTree();
Console.WriteLine(InfectedPeople.Count);
Console.WriteLine(rootVirus.CountInfectedInDepthRange(3, 10));
Console.WriteLine($"Infected people count: {InfectedPeople.Count}");
Console.WriteLine($"Unique people count: {uniquePeople.Count}");
// Verify if all unique people are infected
bool allInfected = uniquePeople.All(person => InfectedPeople.Contains(person));
Console.WriteLine($"All unique people infected: {allInfected}");
if (!allInfected)
{
var notInfected = uniquePeople.Where(person => !InfectedPeople.Contains(person)).ToList();
Console.WriteLine("People not infected:");
foreach (var person in notInfected)
{
Console.WriteLine(person);
}
}
/*
Virus rootVirus2 = new Virus(2);
int count = 0;
while (NewInfectedPeople.Count != uniquePeople.Count)
{
count++;
SpreadBFS(rootVirus2, count);
}
Console.WriteLine(count);
*/
}
@ -74,12 +188,6 @@ namespace Program
}
}
}
// Check if the current virus should be healed
if (currentDepth - currentVirus.InfectionTurn >= 8)
{
InfectedPeople.Remove(currentVirus.Name);
}
}
}

View File

@ -47,5 +47,22 @@ namespace Program
infected.PrintInfectionTreeWithDepth(maxDepth, currentDepth + 1, indent + " ");
}
}
public int CountInfectedInDepthRange(int minDepth, int maxDepth, int currentDepth = 0)
{
int count = 0;
if (currentDepth >= minDepth && currentDepth <= maxDepth)
{
count++;
}
foreach (var infected in Infected)
{
count += infected.CountInfectedInDepthRange(minDepth, maxDepth, currentDepth + 1);
}
return count;
}
}
}

View File

@ -5,3 +5,10 @@ E:\Házi\13.osztály\Neumann_Verseny\fordulo_3\Program\obj\Debug\Program.csproj.
E:\Házi\13.osztály\Neumann_Verseny\fordulo_3\Program\obj\Debug\Program.csproj.CoreCompileInputs.cache
E:\Házi\13.osztály\Neumann_Verseny\fordulo_3\Program\obj\Debug\Program.exe
E:\Házi\13.osztály\Neumann_Verseny\fordulo_3\Program\obj\Debug\Program.pdb
C:\Users\szabomarton\Desktop\Verseny\fordulo_3\Program\bin\Debug\Program.exe.config
C:\Users\szabomarton\Desktop\Verseny\fordulo_3\Program\bin\Debug\Program.exe
C:\Users\szabomarton\Desktop\Verseny\fordulo_3\Program\bin\Debug\Program.pdb
C:\Users\szabomarton\Desktop\Verseny\fordulo_3\Program\obj\Debug\Program.csproj.AssemblyReference.cache
C:\Users\szabomarton\Desktop\Verseny\fordulo_3\Program\obj\Debug\Program.csproj.CoreCompileInputs.cache
C:\Users\szabomarton\Desktop\Verseny\fordulo_3\Program\obj\Debug\Program.exe
C:\Users\szabomarton\Desktop\Verseny\fordulo_3\Program\obj\Debug\Program.pdb

View File

@ -0,0 +1,4 @@
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")]

View File

@ -52,5 +52,5 @@
- b: `296962999629`
### 4. feladat
- a: ``
- b: ``
- a: `159`
- b: `14`