1
0
bastien.monsarrat 7 жил өмнө
parent
commit
a7b9926dd5
49 өөрчлөгдсөн 8502 нэмэгдсэн , 2 устгасан
  1. 67 1
      Adv2018.sln
  2. 0 0
      Adv2018/D01.1.csproj
  3. 18 1
      Adv2018/Program.cs
  4. 8 0
      Adv2018/Properties/launchSettings.json
  5. 1011 0
      Adv2018/input.txt
  6. 9 0
      D05.2/D05.2.csproj
  7. 63 0
      D05.2/Program.cs
  8. 8 0
      D05.2/Properties/launchSettings.json
  9. 0 0
      D05.2/input.txt
  10. 9 0
      D1.2/D01.2.csproj
  11. 47 0
      D1.2/Program.cs
  12. 8 0
      D1.2/Properties/launchSettings.json
  13. 1011 0
      D1.2/input.txt
  14. 9 0
      D2.1/D02.1.csproj
  15. 41 0
      D2.1/Program.cs
  16. 8 0
      D2.1/Properties/launchSettings.json
  17. 250 0
      D2.1/input.txt
  18. 9 0
      D2.2/D02.2.csproj
  19. 48 0
      D2.2/Program.cs
  20. 8 0
      D2.2/Properties/launchSettings.json
  21. 250 0
      D2.2/input.txt
  22. 9 0
      D3.1/D03.1.csproj
  23. 54 0
      D3.1/Program.cs
  24. 8 0
      D3.1/Properties/launchSettings.json
  25. 1305 0
      D3.1/input.txt
  26. 9 0
      D3.2/D03.2.csproj
  27. 71 0
      D3.2/Program.cs
  28. 8 0
      D3.2/Properties/launchSettings.json
  29. 1305 0
      D3.2/input.txt
  30. 9 0
      D4.1/D04.1.csproj
  31. 78 0
      D4.1/Program.cs
  32. 8 0
      D4.1/Properties/launchSettings.json
  33. 1159 0
      D4.1/input.txt
  34. 9 0
      D4.2/D04.2.csproj
  35. 83 0
      D4.2/Program.cs
  36. 8 0
      D4.2/Properties/launchSettings.json
  37. 1159 0
      D4.2/input.txt
  38. 9 0
      D5.1/D05.1.csproj
  39. 43 0
      D5.1/Program.cs
  40. 8 0
      D5.1/Properties/launchSettings.json
  41. 0 0
      D5.1/input.txt
  42. 9 0
      D6.1/D06.1.csproj
  43. 91 0
      D6.1/Program.cs
  44. 8 0
      D6.1/Properties/launchSettings.json
  45. 50 0
      D6.1/input.txt
  46. 9 0
      D6.2/D06.2.csproj
  47. 53 0
      D6.2/Program.cs
  48. 8 0
      D6.2/Properties/launchSettings.json
  49. 50 0
      D6.2/input.txt

+ 67 - 1
Adv2018.sln

@@ -3,7 +3,29 @@ Microsoft Visual Studio Solution File, Format Version 12.00
 # Visual Studio 15
 VisualStudioVersion = 15.0.28307.136
 MinimumVisualStudioVersion = 10.0.40219.1
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Adv2018", "Adv2018\Adv2018.csproj", "{75F7258F-26A1-40DD-BF7C-68BE0A79AD46}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "D01.1", "Adv2018\D01.1.csproj", "{75F7258F-26A1-40DD-BF7C-68BE0A79AD46}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "D01.2", "D1.2\D01.2.csproj", "{95858808-D3A8-4878-BAA1-48E85CE7B966}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "D02.1", "D2.1\D02.1.csproj", "{9EC3265A-AFE8-43BB-9720-5304D758545E}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "D02.2", "D2.2\D02.2.csproj", "{236C4ABF-E4BB-4878-9128-8B18F59DC367}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "D03.1", "D3.1\D03.1.csproj", "{F261A83D-185D-4657-9C01-0A6E0F5F7EA6}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "D03.2", "D3.2\D03.2.csproj", "{177DB14B-F338-447D-8653-3767192EA230}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "D04.1", "D4.1\D04.1.csproj", "{A52CF9DC-04B4-4636-A03E-F6DAF0AED13A}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "D04.2", "D4.2\D04.2.csproj", "{AFA0D0FD-4FED-492A-BCC4-069CB222CBAA}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "D05.1", "D5.1\D05.1.csproj", "{0A753214-03DC-41AE-84BE-526C50C61A39}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "D05.2", "D05.2\D05.2.csproj", "{C67118CD-EB45-454F-BE18-FBCE662FED26}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "D06.1", "D6.1\D06.1.csproj", "{DC62F9FB-7CF8-405E-A20F-6C0154CD437B}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "D06.2", "D6.2\D06.2.csproj", "{BC77C593-1F13-42F9-BC0D-D706CB87BE1A}"
 EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -15,6 +37,50 @@ Global
 		{75F7258F-26A1-40DD-BF7C-68BE0A79AD46}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{75F7258F-26A1-40DD-BF7C-68BE0A79AD46}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{75F7258F-26A1-40DD-BF7C-68BE0A79AD46}.Release|Any CPU.Build.0 = Release|Any CPU
+		{95858808-D3A8-4878-BAA1-48E85CE7B966}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{95858808-D3A8-4878-BAA1-48E85CE7B966}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{95858808-D3A8-4878-BAA1-48E85CE7B966}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{95858808-D3A8-4878-BAA1-48E85CE7B966}.Release|Any CPU.Build.0 = Release|Any CPU
+		{9EC3265A-AFE8-43BB-9720-5304D758545E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{9EC3265A-AFE8-43BB-9720-5304D758545E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{9EC3265A-AFE8-43BB-9720-5304D758545E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{9EC3265A-AFE8-43BB-9720-5304D758545E}.Release|Any CPU.Build.0 = Release|Any CPU
+		{236C4ABF-E4BB-4878-9128-8B18F59DC367}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{236C4ABF-E4BB-4878-9128-8B18F59DC367}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{236C4ABF-E4BB-4878-9128-8B18F59DC367}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{236C4ABF-E4BB-4878-9128-8B18F59DC367}.Release|Any CPU.Build.0 = Release|Any CPU
+		{F261A83D-185D-4657-9C01-0A6E0F5F7EA6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{F261A83D-185D-4657-9C01-0A6E0F5F7EA6}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{F261A83D-185D-4657-9C01-0A6E0F5F7EA6}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{F261A83D-185D-4657-9C01-0A6E0F5F7EA6}.Release|Any CPU.Build.0 = Release|Any CPU
+		{177DB14B-F338-447D-8653-3767192EA230}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{177DB14B-F338-447D-8653-3767192EA230}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{177DB14B-F338-447D-8653-3767192EA230}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{177DB14B-F338-447D-8653-3767192EA230}.Release|Any CPU.Build.0 = Release|Any CPU
+		{A52CF9DC-04B4-4636-A03E-F6DAF0AED13A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{A52CF9DC-04B4-4636-A03E-F6DAF0AED13A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{A52CF9DC-04B4-4636-A03E-F6DAF0AED13A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{A52CF9DC-04B4-4636-A03E-F6DAF0AED13A}.Release|Any CPU.Build.0 = Release|Any CPU
+		{AFA0D0FD-4FED-492A-BCC4-069CB222CBAA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{AFA0D0FD-4FED-492A-BCC4-069CB222CBAA}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{AFA0D0FD-4FED-492A-BCC4-069CB222CBAA}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{AFA0D0FD-4FED-492A-BCC4-069CB222CBAA}.Release|Any CPU.Build.0 = Release|Any CPU
+		{0A753214-03DC-41AE-84BE-526C50C61A39}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{0A753214-03DC-41AE-84BE-526C50C61A39}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{0A753214-03DC-41AE-84BE-526C50C61A39}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{0A753214-03DC-41AE-84BE-526C50C61A39}.Release|Any CPU.Build.0 = Release|Any CPU
+		{C67118CD-EB45-454F-BE18-FBCE662FED26}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{C67118CD-EB45-454F-BE18-FBCE662FED26}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{C67118CD-EB45-454F-BE18-FBCE662FED26}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{C67118CD-EB45-454F-BE18-FBCE662FED26}.Release|Any CPU.Build.0 = Release|Any CPU
+		{DC62F9FB-7CF8-405E-A20F-6C0154CD437B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{DC62F9FB-7CF8-405E-A20F-6C0154CD437B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{DC62F9FB-7CF8-405E-A20F-6C0154CD437B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{DC62F9FB-7CF8-405E-A20F-6C0154CD437B}.Release|Any CPU.Build.0 = Release|Any CPU
+		{BC77C593-1F13-42F9-BC0D-D706CB87BE1A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{BC77C593-1F13-42F9-BC0D-D706CB87BE1A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{BC77C593-1F13-42F9-BC0D-D706CB87BE1A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{BC77C593-1F13-42F9-BC0D-D706CB87BE1A}.Release|Any CPU.Build.0 = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE

+ 0 - 0
Adv2018/Adv2018.csproj → Adv2018/D01.1.csproj


+ 18 - 1
Adv2018/Program.cs

@@ -1,4 +1,5 @@
 using System;
+using System.IO;
 
 namespace Adv2018
 {
@@ -6,7 +7,23 @@ namespace Adv2018
     {
         static void Main(string[] args)
         {
-            Console.WriteLine("Hello World!");
+            if (args.Length < 1) return;
+
+            var file = File.OpenText(args[0]);
+
+            int frequency = 0;
+
+            do
+            {
+                var line = file.ReadLine();
+                if (line == null) break;
+
+                var freq = int.Parse(line);
+                frequency += freq;
+
+            } while (true);
+
+            Console.WriteLine($"Result : {frequency}");
         }
     }
 }

+ 8 - 0
Adv2018/Properties/launchSettings.json

@@ -0,0 +1,8 @@
+{
+  "profiles": {
+    "Adv2018D1.1": {
+      "commandName": "Project",
+      "commandLineArgs": "\"D:\\adv\\Adv2018\\Adv2018\\input.txt\""
+    }
+  }
+}

+ 1011 - 0
Adv2018/input.txt

@@ -0,0 +1,1011 @@
++12
+-13
++17
++17
+-10
++6
++13
++13
+-9
++13
+-15
++16
++12
+-19
+-15
+-11
++16
+-4
++9
++9
++4
++8
++19
+-15
+-10
++4
+-2
++17
+-4
++7
++15
++8
++10
+-13
++11
++12
+-4
+-7
++3
+-6
+-8
++19
++10
++14
++7
+-3
+-19
++16
++17
++15
+-18
++19
++11
+-7
++10
+-17
++11
+-20
++4
++9
+-11
+-12
++9
+-13
++2
+-12
+-1
++17
++15
++10
++14
+-7
+-5
+-13
+-19
+-6
++13
+-14
+-18
++4
++6
+-4
++5
++18
++23
+-6
++13
++17
++4
++16
+-18
+-6
+-9
++11
++7
++12
++10
+-16
+-10
++12
++10
+-2
++16
++10
+-7
+-11
++3
++9
+-16
+-9
++10
++2
++15
+-4
+-6
++12
++5
++5
++19
+-18
+-4
++14
+-2
+-4
++18
+-15
+-10
++5
++17
++15
+-9
+-5
++9
++1
++9
++14
++15
++11
+-16
++15
++8
++15
++4
++10
++1
++18
++12
+-5
+-1
++16
+-11
+-19
+-5
++15
+-17
++19
+-5
++14
++6
++12
++10
++16
++6
++8
+-12
+-1
++4
+-17
+-13
++2
++12
+-3
+-16
++17
+-6
++14
++3
++5
++4
++10
++8
+-17
++7
++19
++13
++18
++17
+-9
++14
+-4
+-3
+-11
+-13
++6
+-2
++16
+-15
+-15
+-13
+-7
+-7
+-7
++16
++17
+-15
+-10
+-2
+-7
++2
++16
++6
++20
+-6
+-13
+-5
++1
++12
++6
++20
+-22
+-10
++5
+-16
+-17
++13
++18
+-4
++5
++11
++14
+-9
++1
+-19
+-1
++32
+-14
+-3
++9
++3
++18
++9
++15
+-11
++17
+-15
++2
+-13
+-14
++18
+-3
+-3
+-9
+-5
+-48
+-15
++13
+-1
+-5
+-23
+-10
++16
+-17
+-16
+-2
++16
+-13
+-15
+-4
+-10
+-1
++2
+-18
++11
+-12
++14
++19
+-9
++19
+-17
++11
++16
++6
++6
++6
+-20
++19
++2
++5
+-21
++20
++8
+-35
+-8
++17
+-19
++1
+-29
+-8
++13
+-18
+-5
++6
++8
++13
+-18
++11
++18
+-10
+-30
+-18
+-2
+-1
++11
++14
++1
+-18
+-20
++7
+-1
+-11
+-13
+-5
++9
+-18
++15
+-7
+-5
++3
+-8
+-4
++16
+-9
++10
++8
++14
++2
+-10
+-18
++16
++20
++16
+-9
++12
+-5
+-4
+-2
++9
++20
+-14
++5
+-17
+-17
+-1
+-2
+-5
+-9
++1
++9
+-17
++11
+-2
+-5
++11
+-23
+-16
++15
+-5
+-13
+-7
+-4
+-1
+-10
+-6
+-3
+-2
+-12
+-15
++16
+-11
++7
+-22
++5
++8
+-10
+-13
+-19
++23
++3
+-12
+-10
+-19
++26
+-1
+-1
++19
++2
++26
+-18
+-23
++20
++27
++20
++7
++8
++11
+-34
++19
++11
+-14
++13
+-39
++5
++31
+-21
++12
+-6
++40
+-16
+-51
++23
+-31
+-33
+-5
+-20
++5
+-10
+-10
+-18
+-8
+-17
+-12
+-14
+-16
++10
++12
++19
+-15
+-11
++5
+-7
+-14
++4
++18
+-4
+-9
+-15
++21
+-20
+-7
+-17
++26
+-6
+-5
++17
++21
++11
++21
+-9
+-15
++17
++16
+-13
+-23
++1
++9
+-20
+-12
+-11
++3
++13
++21
+-20
+-3
++31
++21
+-11
+-1
++8
+-12
++15
++28
++3
+-18
++6
+-5
++13
++48
+-152
+-14
++20
+-12
+-4
+-2
+-136
++26
+-87
+-21
++23
+-15
++8
++2
+-12
++37
++43
+-342
++328
++120
+-72629
+-10
+-10
++4
+-11
+-16
+-18
++5
+-6
++9
++6
++12
+-5
++2
+-14
++4
++16
+-18
+-19
+-2
++6
+-17
++6
++13
+-18
+-5
++20
+-9
+-5
++7
+-15
++9
++19
++14
++16
+-1
+-18
+-19
+-15
++6
+-12
+-18
+-9
++11
++10
++5
+-16
+-18
++13
++14
+-16
++1
++8
+-16
+-11
+-17
+-18
++1
+-8
++13
+-9
++14
++3
+-1
++15
++11
++17
+-9
++16
++9
++16
+-23
++14
+-15
+-12
++5
++18
++17
++16
++4
++9
++19
+-8
++10
++17
++3
+-1
+-1
+-7
+-9
+-6
+-16
++5
++2
++4
+-3
++17
++23
++2
+-29
++2
++4
++8
+-2
++32
+-22
++16
+-66
+-16
+-26
++9
++20
++5
++4
+-17
+-20
+-6
+-17
+-14
+-14
++3
+-7
++17
++4
++8
+-10
+-8
+-15
+-3
++9
++1
+-18
++16
+-3
+-12
++11
+-6
+-1
+-18
++4
+-11
+-21
++8
+-14
++4
+-3
+-7
++11
++4
++10
+-4
++13
++9
+-7
+-18
+-5
++14
++10
+-9
+-9
++13
++16
+-3
+-6
+-17
++16
+-15
++12
++12
++10
++19
++7
++9
++6
+-16
+-9
++8
+-3
+-4
+-18
+-15
++11
++41
++14
++38
++13
+-28
+-15
+-98
+-12
+-9
+-2
+-18
+-1
+-5
+-3
+-3
+-5
+-18
+-14
++17
+-4
+-14
++6
++7
++4
++15
+-8
+-3
+-9
++15
++7
++8
++3
++3
++10
++11
+-6
+-2
++15
+-3
+-18
++10
++1
+-14
++10
+-3
++1
++11
++6
+-34
+-15
+-17
+-1
+-6
+-11
+-17
++5
+-18
++12
+-5
+-8
++11
++14
++5
+-10
++7
+-12
++8
++10
++3
+-15
++13
++3
++9
++14
+-20
+-8
+-16
+-20
++8
++2
+-1
+-7
+-7
++2
+-15
+-7
+-2
+-8
+-14
+-10
++4
+-19
++14
+-17
+-17
++7
+-19
+-10
+-10
+-12
++7
++14
+-10
++12
+-10
++1
++6
+-15
+-12
+-14
++5
++19
++14
++1
++15
+-6
++3
+-5
++13
++7
+-8
++18
+-16
++4
+-1
+-14
++18
++19
+-17
++12
+-10
+-3
++9
++10
++18
++11
++5
+-9
++16
++1
+-2
++10
++1
++12
+-19
+-12
++6
+-7
+-3
+-18
++12
+-11
++10
+-1
+-1
++8
+-11
+-2
++12
+-23
++2
+-17
++19
+-16
++5
++6
+-19
++9
++14
+-20
++23
+-5
+-3
+-4
+-22
+-1
+-16
+-20
+-14
++7
++2
+-11
+-2
+-18
++2
+-4
++17
++8
+-20
++2
++19
+-14
+-15
++17
+-6
+-2
++5
++18
++1
++6
++7
++17
+-7
+-18
++15
+-6
+-2
+-10
+-11
++28
+-21
+-13
+-32
++4
++6
++3
++2
++21
+-16
+-22
+-1
++12
++17
++14
++46
+-6
++2
++3
++19
++6
++15
++7
++20
++21
+-7
+-1
+-15
+-3
++9
+-3
+-12
++19
++16
++12
+-5
+-13
++15
++15
+-4
+-18
+-1
+-5
++2
++18
+-2
+-11
++16
++7
+-15
++16
+-22
+-6
+-6
++13
+-19
++52
+-5
++7
++5
+-11
++8
++21
++20
++18
+-11
+-1
+-15
++3
++16
++17
+-19
+-11
++28
++29
+-8
+-18
+-6
+-20
+-6
++21
++26
+-5
+-14
+-13
+-10
+-25
+-2
++16
+-3
+-19
+-7
++17
++71
++26
+-40
++129
+-441
+-12
++16
+-166
+-10
++2
++13
++22
++29
++14
++22
++57
+-83
+-82
++18
++73808

+ 9 - 0
D05.2/D05.2.csproj

@@ -0,0 +1,9 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <OutputType>Exe</OutputType>
+    <TargetFramework>netcoreapp2.1</TargetFramework>
+    <RootNamespace>D05._2</RootNamespace>
+  </PropertyGroup>
+
+</Project>

+ 63 - 0
D05.2/Program.cs

@@ -0,0 +1,63 @@
+using System;
+using System.IO;
+using System.Linq;
+
+namespace D5._2
+{
+    class Program
+    {
+        static void Main(string[] args)
+        {
+            if (args.Length < 1) return;
+            if (File.Exists(args[0]) == false) return;
+
+            var file = File.OpenText(args[0]);
+
+            string polymer = file.ReadLine();
+
+            int shortest = polymer.Length;
+            for (char i = 'A'; i <= 'Z'; i++)
+            {
+                var altera = alterPolymer(polymer, i);
+                reduce(ref altera);
+
+                if (altera.Length < shortest) shortest = altera.Length;
+            }
+
+            Console.WriteLine(shortest);
+        }
+
+        static void reduce(ref string polymer)
+        {
+            for (int i = 1; i < polymer.Length; i++)
+            {
+                char cc = polymer[i];
+                char cm = polymer[i - 1];
+
+                if (Math.Abs(cc - cm) <= 26) continue;
+                if (up(cc) == up(cm))
+                {
+                    polymer = polymer.Remove(i - 1, 2);
+                    i = Math.Max(0, i - 2);
+                }
+            }
+        }
+
+        static string alterPolymer(string polymer, char unit)
+        {
+            string newPolymer = string.Empty;
+            foreach (var car in polymer)
+            {
+                if (up(car) == up(unit)) continue;
+                newPolymer += car;
+            }
+            return newPolymer;
+        }
+
+        static char up(char c)
+        {
+            if (c >= 'A' && c <= 'Z') return c;
+            return (char)('A' + (c - 'a'));
+        }
+    }
+}

+ 8 - 0
D05.2/Properties/launchSettings.json

@@ -0,0 +1,8 @@
+{
+  "profiles": {
+    "D05.2": {
+      "commandName": "Project",
+      "commandLineArgs": "\"D:\\adv\\Adv2018\\D05.2\\input.txt\""
+    }
+  }
+}

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
D05.2/input.txt


+ 9 - 0
D1.2/D01.2.csproj

@@ -0,0 +1,9 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <OutputType>Exe</OutputType>
+    <TargetFramework>netcoreapp2.1</TargetFramework>
+    <RootNamespace>D1._2</RootNamespace>
+  </PropertyGroup>
+
+</Project>

+ 47 - 0
D1.2/Program.cs

@@ -0,0 +1,47 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+
+namespace D1._2
+{
+    class Program
+    {
+        static void Main(string[] args)
+        {
+            if (args.Length < 1) return;
+            if (File.Exists(args[0]) == false) return;
+
+            var frequencies = new Dictionary<int, bool>()
+            {
+                { 0, true }
+            };
+            int frequency = 0;
+
+            bool foundTwice = false;
+            do
+            {
+                var file = File.OpenText(args[0]);
+                foundTwice = ApplySequence(frequencies, ref frequency, ref foundTwice, file);
+                file.Close();
+            } while (foundTwice == false);
+
+            if (foundTwice) Console.WriteLine($"Result : {frequency}");
+        }
+
+        private static bool ApplySequence(Dictionary<int, bool> frequencies, ref int frequency, ref bool foundTwice, StreamReader file)
+        {
+            do
+            {
+                var line = file.ReadLine();
+                if (line == null) break;
+
+                frequency += int.Parse(line);
+
+                if (frequencies.ContainsKey(frequency)) foundTwice = true;
+                else frequencies.Add(frequency, true);
+            } while (foundTwice == false);
+
+            return foundTwice;
+        }
+    }
+}

+ 8 - 0
D1.2/Properties/launchSettings.json

@@ -0,0 +1,8 @@
+{
+  "profiles": {
+    "D1.2": {
+      "commandName": "Project",
+      "commandLineArgs": "\"D:\\adv\\Adv2018\\D1.2\\input.txt\""
+    }
+  }
+}

+ 1011 - 0
D1.2/input.txt

@@ -0,0 +1,1011 @@
++12
+-13
++17
++17
+-10
++6
++13
++13
+-9
++13
+-15
++16
++12
+-19
+-15
+-11
++16
+-4
++9
++9
++4
++8
++19
+-15
+-10
++4
+-2
++17
+-4
++7
++15
++8
++10
+-13
++11
++12
+-4
+-7
++3
+-6
+-8
++19
++10
++14
++7
+-3
+-19
++16
++17
++15
+-18
++19
++11
+-7
++10
+-17
++11
+-20
++4
++9
+-11
+-12
++9
+-13
++2
+-12
+-1
++17
++15
++10
++14
+-7
+-5
+-13
+-19
+-6
++13
+-14
+-18
++4
++6
+-4
++5
++18
++23
+-6
++13
++17
++4
++16
+-18
+-6
+-9
++11
++7
++12
++10
+-16
+-10
++12
++10
+-2
++16
++10
+-7
+-11
++3
++9
+-16
+-9
++10
++2
++15
+-4
+-6
++12
++5
++5
++19
+-18
+-4
++14
+-2
+-4
++18
+-15
+-10
++5
++17
++15
+-9
+-5
++9
++1
++9
++14
++15
++11
+-16
++15
++8
++15
++4
++10
++1
++18
++12
+-5
+-1
++16
+-11
+-19
+-5
++15
+-17
++19
+-5
++14
++6
++12
++10
++16
++6
++8
+-12
+-1
++4
+-17
+-13
++2
++12
+-3
+-16
++17
+-6
++14
++3
++5
++4
++10
++8
+-17
++7
++19
++13
++18
++17
+-9
++14
+-4
+-3
+-11
+-13
++6
+-2
++16
+-15
+-15
+-13
+-7
+-7
+-7
++16
++17
+-15
+-10
+-2
+-7
++2
++16
++6
++20
+-6
+-13
+-5
++1
++12
++6
++20
+-22
+-10
++5
+-16
+-17
++13
++18
+-4
++5
++11
++14
+-9
++1
+-19
+-1
++32
+-14
+-3
++9
++3
++18
++9
++15
+-11
++17
+-15
++2
+-13
+-14
++18
+-3
+-3
+-9
+-5
+-48
+-15
++13
+-1
+-5
+-23
+-10
++16
+-17
+-16
+-2
++16
+-13
+-15
+-4
+-10
+-1
++2
+-18
++11
+-12
++14
++19
+-9
++19
+-17
++11
++16
++6
++6
++6
+-20
++19
++2
++5
+-21
++20
++8
+-35
+-8
++17
+-19
++1
+-29
+-8
++13
+-18
+-5
++6
++8
++13
+-18
++11
++18
+-10
+-30
+-18
+-2
+-1
++11
++14
++1
+-18
+-20
++7
+-1
+-11
+-13
+-5
++9
+-18
++15
+-7
+-5
++3
+-8
+-4
++16
+-9
++10
++8
++14
++2
+-10
+-18
++16
++20
++16
+-9
++12
+-5
+-4
+-2
++9
++20
+-14
++5
+-17
+-17
+-1
+-2
+-5
+-9
++1
++9
+-17
++11
+-2
+-5
++11
+-23
+-16
++15
+-5
+-13
+-7
+-4
+-1
+-10
+-6
+-3
+-2
+-12
+-15
++16
+-11
++7
+-22
++5
++8
+-10
+-13
+-19
++23
++3
+-12
+-10
+-19
++26
+-1
+-1
++19
++2
++26
+-18
+-23
++20
++27
++20
++7
++8
++11
+-34
++19
++11
+-14
++13
+-39
++5
++31
+-21
++12
+-6
++40
+-16
+-51
++23
+-31
+-33
+-5
+-20
++5
+-10
+-10
+-18
+-8
+-17
+-12
+-14
+-16
++10
++12
++19
+-15
+-11
++5
+-7
+-14
++4
++18
+-4
+-9
+-15
++21
+-20
+-7
+-17
++26
+-6
+-5
++17
++21
++11
++21
+-9
+-15
++17
++16
+-13
+-23
++1
++9
+-20
+-12
+-11
++3
++13
++21
+-20
+-3
++31
++21
+-11
+-1
++8
+-12
++15
++28
++3
+-18
++6
+-5
++13
++48
+-152
+-14
++20
+-12
+-4
+-2
+-136
++26
+-87
+-21
++23
+-15
++8
++2
+-12
++37
++43
+-342
++328
++120
+-72629
+-10
+-10
++4
+-11
+-16
+-18
++5
+-6
++9
++6
++12
+-5
++2
+-14
++4
++16
+-18
+-19
+-2
++6
+-17
++6
++13
+-18
+-5
++20
+-9
+-5
++7
+-15
++9
++19
++14
++16
+-1
+-18
+-19
+-15
++6
+-12
+-18
+-9
++11
++10
++5
+-16
+-18
++13
++14
+-16
++1
++8
+-16
+-11
+-17
+-18
++1
+-8
++13
+-9
++14
++3
+-1
++15
++11
++17
+-9
++16
++9
++16
+-23
++14
+-15
+-12
++5
++18
++17
++16
++4
++9
++19
+-8
++10
++17
++3
+-1
+-1
+-7
+-9
+-6
+-16
++5
++2
++4
+-3
++17
++23
++2
+-29
++2
++4
++8
+-2
++32
+-22
++16
+-66
+-16
+-26
++9
++20
++5
++4
+-17
+-20
+-6
+-17
+-14
+-14
++3
+-7
++17
++4
++8
+-10
+-8
+-15
+-3
++9
++1
+-18
++16
+-3
+-12
++11
+-6
+-1
+-18
++4
+-11
+-21
++8
+-14
++4
+-3
+-7
++11
++4
++10
+-4
++13
++9
+-7
+-18
+-5
++14
++10
+-9
+-9
++13
++16
+-3
+-6
+-17
++16
+-15
++12
++12
++10
++19
++7
++9
++6
+-16
+-9
++8
+-3
+-4
+-18
+-15
++11
++41
++14
++38
++13
+-28
+-15
+-98
+-12
+-9
+-2
+-18
+-1
+-5
+-3
+-3
+-5
+-18
+-14
++17
+-4
+-14
++6
++7
++4
++15
+-8
+-3
+-9
++15
++7
++8
++3
++3
++10
++11
+-6
+-2
++15
+-3
+-18
++10
++1
+-14
++10
+-3
++1
++11
++6
+-34
+-15
+-17
+-1
+-6
+-11
+-17
++5
+-18
++12
+-5
+-8
++11
++14
++5
+-10
++7
+-12
++8
++10
++3
+-15
++13
++3
++9
++14
+-20
+-8
+-16
+-20
++8
++2
+-1
+-7
+-7
++2
+-15
+-7
+-2
+-8
+-14
+-10
++4
+-19
++14
+-17
+-17
++7
+-19
+-10
+-10
+-12
++7
++14
+-10
++12
+-10
++1
++6
+-15
+-12
+-14
++5
++19
++14
++1
++15
+-6
++3
+-5
++13
++7
+-8
++18
+-16
++4
+-1
+-14
++18
++19
+-17
++12
+-10
+-3
++9
++10
++18
++11
++5
+-9
++16
++1
+-2
++10
++1
++12
+-19
+-12
++6
+-7
+-3
+-18
++12
+-11
++10
+-1
+-1
++8
+-11
+-2
++12
+-23
++2
+-17
++19
+-16
++5
++6
+-19
++9
++14
+-20
++23
+-5
+-3
+-4
+-22
+-1
+-16
+-20
+-14
++7
++2
+-11
+-2
+-18
++2
+-4
++17
++8
+-20
++2
++19
+-14
+-15
++17
+-6
+-2
++5
++18
++1
++6
++7
++17
+-7
+-18
++15
+-6
+-2
+-10
+-11
++28
+-21
+-13
+-32
++4
++6
++3
++2
++21
+-16
+-22
+-1
++12
++17
++14
++46
+-6
++2
++3
++19
++6
++15
++7
++20
++21
+-7
+-1
+-15
+-3
++9
+-3
+-12
++19
++16
++12
+-5
+-13
++15
++15
+-4
+-18
+-1
+-5
++2
++18
+-2
+-11
++16
++7
+-15
++16
+-22
+-6
+-6
++13
+-19
++52
+-5
++7
++5
+-11
++8
++21
++20
++18
+-11
+-1
+-15
++3
++16
++17
+-19
+-11
++28
++29
+-8
+-18
+-6
+-20
+-6
++21
++26
+-5
+-14
+-13
+-10
+-25
+-2
++16
+-3
+-19
+-7
++17
++71
++26
+-40
++129
+-441
+-12
++16
+-166
+-10
++2
++13
++22
++29
++14
++22
++57
+-83
+-82
++18
++73808

+ 9 - 0
D2.1/D02.1.csproj

@@ -0,0 +1,9 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <OutputType>Exe</OutputType>
+    <TargetFramework>netcoreapp2.1</TargetFramework>
+    <RootNamespace>D2._1</RootNamespace>
+  </PropertyGroup>
+
+</Project>

+ 41 - 0
D2.1/Program.cs

@@ -0,0 +1,41 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Text.RegularExpressions;
+
+namespace D2._1
+{
+    class Program
+    {
+        static void Main(string[] args)
+        {
+            if (args.Length < 1) return;
+            if (File.Exists(args[0]) == false) return;
+
+            var file = File.OpenText(args[0]);
+
+            int numberOfTwos = 0, numberOfThrees = 0;
+
+            do
+            {
+                var line = file.ReadLine();
+                if (line == null) break;
+
+                var letter = new Dictionary<char, int>();
+
+                foreach (var car in line)
+                {
+                    if (letter.ContainsKey(car)) letter[car]++;
+                    else letter.Add(car, 1);
+                }
+
+                if (letter.Any(l => l.Value == 2)) numberOfTwos++;
+                if (letter.Any(l => l.Value == 3)) numberOfThrees++;
+
+            } while (true);
+
+            Console.WriteLine($"Result : {numberOfTwos * numberOfThrees}");
+        }
+    }
+}

+ 8 - 0
D2.1/Properties/launchSettings.json

@@ -0,0 +1,8 @@
+{
+  "profiles": {
+    "D02.1": {
+      "commandName": "Project",
+      "commandLineArgs": "\"D:\\adv\\Adv2018\\D2.1\\input.txt\""
+    }
+  }
+}

+ 250 - 0
D2.1/input.txt

@@ -0,0 +1,250 @@
+rmyxgdlihczskunpfwbgqoeybv
+rmyxgdlksczskunpfwbjqkeatv
+rmybgdxibczskunpfwbjqoeatv
+rmyxgdlirczskuopfwbjqzeatv
+rmyxedlrhczskunpfwbyqoeatv
+rmyxfdlicczskunpfwbxqoeatv
+rmyxgvlihkzskunpfwbsqoeatv
+rmyxgdaihczvkunpfwblqoeatv
+nmyxgolihczskunpfwbjqieatv
+rhyxgdcihczskunifwbjqoeatv
+rmfxgdlihczskunpfwbvqgeatv
+smyxgdlihczskunsiwbjqoeatv
+rmyxgdcihcxskunpfwbrqoeatv
+rmyxgdlihczckuiqfwbjqoeatv
+rmyxxdwihczskunifwbjqoeatv
+rkzxgdlihczskunpfwhjqoeatv
+rmypgdlihczskunpfwbrqoeafv
+rmyxgplihczvkunpkwbjqoeatv
+rqyxgdlihdzskjnpfwbjqoeatv
+rmyxgdlihczskqnpswbjqoeaov
+mcyxgdlihczmkunpfwbjqoeatv
+rmyxgdlohczspunpowbjqoeatv
+tmyxgdlihczskunpfwbeqoeltv
+rmyxgdlibccskunpfwbjqoegtv
+rmyxgdlehczsaunpfwboqoeatv
+rmaxgdlihczseunpfwbjqojatv
+rmyxgdlijczskynpfwbjboeatv
+kmlxgdlilczskunpfwbjqoeatv
+rmsxgdlshczskenpfwbjqoeatv
+rmbxgdlihcmskgnpfwbjqoeatv
+rayxgdlihczskunpfwbjqoeaef
+umyxgdlisczskunpfdbjqoeatv
+rmyxgdlihczskunsfwbjqieatg
+rmbxgdlihczhkunpfwbjqoeamv
+rmyxgdlihczskeypfwbjqxeatv
+rmyxgkrihczskunptwbjqoeatv
+rmyxgdlihczskunpawbjqoexiv
+rmyxgdlihcrskqnpfwbjqceatv
+rmyxgblihczskjnpfwbjqieatv
+rmyggdlidczskunofwbjqoeatv
+rmyxgdlghczskunphwbjqomatv
+rmqxgdbihczskunpfnbjqoeatv
+rvyxgdlihczsgunpfwbjqoeanv
+royxgdlnhczskqnpfwbjqoeatv
+rmyxgdlihczskugpfwbkqreatv
+rmyxfdlihczskunppwejqoeatv
+rqyxgdlipczskunpfwbjqoeqtv
+rmyxgdlicczskunpnwbjqotatv
+rmyxodlihczskxnpfwijqoeatv
+rmyxrdyihczskunpftbjqoeatv
+rmtxgdyihwzskunpfwbjqoeatv
+tmyxcdliiczskunpfwbjqoeatv
+rmyxgdlihczskmnpfwbjjoeadv
+rmyxgdnihczskunpqwbjqojatv
+bmyxgdlihczskcnpfwboqoeatv
+rmysgdlihcyskudpfwbjqoeatv
+rmyxgdtihczsmuupfwbjqoeatv
+rmyxgdlihczssunpffbjqolatv
+rmyogdlihczsklnpfwbjqoxatv
+rmyxgjlihczskunpfwsjqoyatv
+rmyxgalshczskunpfwbuqoeatv
+rmyfgdlihczskunqfwbiqoeatv
+tmyxgdlihczskunotwbjqoeatv
+rmyxpdzihczskuopfwbjqoeatv
+rmyfgdlihczskunpfrbgqoeatv
+rmyxgdlwhczskhnofwbjqoeatv
+rmyxgdlihczsmudpfrbjqoeatv
+rmyxgdlihczokanpfwbjqooatv
+rmyxrdlihczskunppwjjqoeatv
+rmyxgdjihczskwnpowbjqoeatv
+mmyxgdlihczikunpfwbjqoeamv
+rmyxgflihczshunpwwbjqoeatv
+rmytghlihczskunpfwbjqoeatk
+rmyxgdlipczmbunpfwbjqoeatv
+rmyxgdlihczkkonpfwbjqomatv
+rmfxgslihczskunpfwujqoeatv
+dmyxgdlihczykunqfwbjqoeatv
+rmyxgalihcbskunpgwbjqoeatv
+rmyxgdlinczqkunpfwbjqopatv
+rmyxgdlihwzslunplwbjqoeatv
+rmypgdlihczskdtpfwbjqoeatv
+rmsxgdxieczskunpfwbjqoeatv
+rmyxgdlihczskwnpfxrjqoeatv
+rmyxgdlihzzskunpflbjpoeatv
+rslxgdlihczsnunpfwbjqoeatv
+rmyxgdlmcczskunpfwbjqoealv
+fmkxgdbihczskunpfwbjqoeatv
+rmyxgdiigczxkunpfwbjqoeatv
+rjyxgnlqhczskunpfwbjqoeatv
+ymyxgolihczskunpfmbjqoeatv
+hmyxgdlihczskuncfwbjqoejtv
+rmyxgqlihczzkunpfwbjqojatv
+rmgfgdlihczskunpfwbjgoeatv
+rmyxgdlfhczskunpfwbjqweaxv
+rmoxtdlihczskunpfwdjqoeatv
+ruyxgdlihczskunpfmbjnoeatv
+rmnxgflehczskunpfwbjqoeatv
+rmyugdlihczskunpfwfjroeatv
+rmyxddbihczskunpfwbjqoeutv
+rmyxgdlipczskunofbbjqoeatv
+gmyxgdlihczskunpfkbjroeatv
+rmyxgdllhcpskunpfwbjqqeatv
+rmyxgdlihchskunpfwbjqoelcv
+mmyxldlihczskuncfwbjqoeatv
+ryyxgdlxhczskcnpfwbjqoeatv
+rmyxpdlihczskyntfwbjqoeatv
+rmhxgdlibczskwnpfwbjqoeatv
+rmyxgdlihczskunpfwojbkeatv
+qmyxgdlihczskunpfwbjqoyatm
+rmyxgdlzhczskunpfwbjqoealr
+rmyegdliqczskunpfgbjqoeatv
+umyxgdlihczsvunpfwbfqoeatv
+rmyxgdoihfzskunpfmbjqoeatv
+rmyxgdlihcdskanpmwbjqoeatv
+rmyxgdyihczskunpfrbjqoeaov
+rcyxgdlihczskuegfwbjqoeatv
+rmyxgdlihgwskunpfwbjkoeatv
+rpyxgdlihmzskunpfwbjqoeatp
+rmyxgdlihhzskunpfwbjaoeapv
+rmyxgdsrhczskunpflbjqoeatv
+rmrxgdlihczskunpvwbjqoeabv
+rmcxgylihczskunpfwbjyoeatv
+rmkxgdlyhczsounpfwbjqoeatv
+rmyxgdqihczskunmfwbjqoratv
+rmyxgdlihczskunpfibjqofath
+rmyxgdliqczskunpqwbjqoeaev
+rmhxgdlizcjskunpfwbjqoeatv
+rmyxgdlfhcwskunpfwbjqoeaqv
+rmyxgdlchclskunpfwbdqoeatv
+rmyxgdluhczswunpfwbjqoeatt
+rmyxgdlzqczskunpfwbjqoeatq
+rmdxgdlihszskunpfwbwqoeatv
+rmyxgdlihszsvunpfwbjqueatv
+rmyxgdlhhczskunpffbjaoeatv
+rmrxgdlphczskunpfwbjqreatv
+hmyngdxihczskunpfwbjqoeatv
+rmyxgdlizczpkunpfwbyqoeatv
+rmyxbdlihyzskunlfwbjqoeatv
+rmyxgdlipczsqunnfwbjqoeatv
+rmyxgdlihcsskunpfxbjqoaatv
+rmyxgdljhcznkunpfwbjqfeatv
+rmaxgdlihczspunpfwbjqoqatv
+rsyxgdlihczskunpfwbjqoehcv
+rmyxgjlicczskunpfwbjqoeitv
+rwymgvlihczskunpfwbjqoeatv
+rmyxgdlipfzskunpfwbjqweatv
+rmyxgglihczskunpgwbjqoealv
+royxgdlihczskhnpfwbyqoeatv
+rmyxgdlihczskvnpfabkqoeatv
+rmyxgdlihczskunpfwhjwzeatv
+jlyxgdlihczskunpfwbjqzeatv
+rmyxgdlihccskunpfwwjqopatv
+rmyxgxlihczskuupfwbjqoeahv
+rmyxgdcihcbskungfwbjqoeatv
+tmyxgdlihczskunpfwbjmoeftv
+rkyxgdlioczskmnpfwbjqoeatv
+rmyxgdlrhczskulpfwbjaoeatv
+rmysgdlihczikunphwbjqoeatv
+rmyxgdlihczskuvpfwbjqoeyty
+fmyxgdlihczscunpfqbjqoeatv
+rfyxgdlihzzrkunpfwbjqoeatv
+rmyxgdlikczskunpfwbjqolath
+rmyxqdlihjzskunpfwbjqoeamv
+rmuxodiihczskunpfwbjqoeatv
+rmyygdliucuskunpfwbjqoeatv
+rmyxgdliwczskuppawbjqoeatv
+rmyxgdlihczskunprwbjqgehtv
+imyvgdlihczskunpfwbjqouatv
+rgyxgdluhczskunpflbjqoeatv
+rmgxgdlihczsdunpfwwjqoeatv
+gdyxgdlihczskunpfwbjqoeavv
+rmyxgdlihczskunpfwljjoektv
+rmexgdlihczskunpfwxjqoeytv
+rmyxqdlihcyskuwpfwbjqoeatv
+rmyxgdlihczskunpfiyjqcebtv
+amyngdlihczskunpfwbjqseatv
+rmzxgdlihczykubpfwbjqoeatv
+rmyxgdlihczhkuopfwbjsoeatv
+rmyxgdlihczskunpfwbaqowztv
+rmgxgdlihczslunpfwbjeoeatv
+rmytgdlzhczskunrfwbjqoeatv
+rmyxgdtihczskunafobjqoeatv
+rmyxgdlihczskuflfbbjqoeatv
+rmdxgdlihczskunpfwbjqoealj
+rbyxgdlihczskuppdwbjqoeatv
+rmyxhdiihcwskunpfwbjqoeatv
+rmmggdlfhczskunpfwbjqoeatv
+rmbxgblihczskuypfwbjqoeatv
+rmyxgslihczsjunpjwbjqoeatv
+rmyxgdlohczsaunpfwbjboeatv
+rmaxgdhihczskunpfwbjooeatv
+rmyxidlihczskunpfgbuqoeatv
+rmyxgdlihfzckznpfwbjqoeatv
+rmaqgdpihczskunpfwbjqoeatv
+rmyvgdlirczskunpfobjqoeatv
+rmdxgdlihczlkunpxwbjqoeatv
+rmyxgdlihczseunpfwbjvdeatv
+rmyxgdlihczskuhpfwbjqneath
+rmyxrdlihciskunpfwbjqoratv
+rmyxgdmihczsqunpftbjqoeatv
+rmyxgdlbhczskulpfbbjqoeatv
+rmoxgdlihczskunpfwbjqoeesv
+rmyxgdlihczskuijfwejqoeatv
+rmyxgdlihczskunpfwnkqoxatv
+rmyxgdvihmzskuupfwbjqoeatv
+rkyxedlihczskunpfcbjqoeatv
+rmyxgdjihczskunprwbjqieatv
+omyxgqgihczskunpfwbjqoeatv
+rmyxydlihczskunpfwkjqoentv
+rmbxgdlicczskunpfwbjqteatv
+emyxgdlihczskugpfwbjqneatv
+dmyxgflihczskunpfwbjqjeatv
+umyxgdlihczskunpfwbjloextv
+rmyxgdlihczsbunpfwbyqpeatv
+rmyxgdrihczsvunpcwbjqoeatv
+qmyxgdlihcwsknnpfwbjqoeatv
+ymyxgdlihczskunpfsbjqowatv
+rmyxgdlbhczskunpnvbjqoeatv
+rmyxfdlixczskunpfwbjqoertv
+rmyygdlihszrkunpfwbjqoeatv
+rmyxgxlihcpskunpfwbjqoeanv
+rmyxgdlihczskjnpfwbjqoprtv
+rmyxgdlisczfkunpfwbjqoeath
+rmyxgdlihczskunpfkbjqoeaji
+rmyxgylihczskunpfwbfqoeatl
+rmsxgdbihczskunpfwtjqoeatv
+smyxgdlihczskunpfwbjqcwatv
+rmyxgdlihczskunppjljqoeatv
+rmyxgdlihczskulpfdbjooeatv
+rmyxgdlihczskunpfibjqcebtv
+rmyxadlihczskunpgwbjyoeatv
+rmyxgdlihczdkunpvwbjqoeytv
+rmyxgdlihcvskunpfwbjxohatv
+rmyxgplihczskunpfgbjqoeauv
+rmyxgdlihcysrunmfwbjqoeatv
+rmyygdlihczskunpfwbjqvewtv
+rmyxgdlihczsmunpfwdjnoeatv
+rmyxgdbibczskunpfwbjuoeatv
+rmyfgdlihczskubpfwbjqoeatp
+rmyxgdlihczskuopfzijqoeatv
+rmyqgdlihczskunpwwbjqoeanv
+imyxgdlihczskunpfwbjqoqytv
+rmyxgdlixcoskbnpfwbjqoeatv
+rmyxgrlihccskunpfwbjqteatv
+rdyxgdlihcpskunpfwbjqoratv
+rmyxgdlihkzskunpfwbjmoeatj
+rmyxgslihczskcnpfjbjqoeatv
+rmyxgdlihczsqunqfwdjqoeatv
+rjyxgdlyhczbkunpfwbjqoeatv
+rmyxudlihczjkunpfwbjqzeatv

+ 9 - 0
D2.2/D02.2.csproj

@@ -0,0 +1,9 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <OutputType>Exe</OutputType>
+    <TargetFramework>netcoreapp2.1</TargetFramework>
+    <RootNamespace>D2._2</RootNamespace>
+  </PropertyGroup>
+
+</Project>

+ 48 - 0
D2.2/Program.cs

@@ -0,0 +1,48 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+
+namespace D2._2
+{
+    class Program
+    {
+        static void Main(string[] args)
+        {
+            if (args.Length < 1) return;
+            if (File.Exists(args[0]) == false) return;
+
+            var file = File.OpenText(args[0]);
+
+            var list = new List<string>();
+            string code = null;
+            do
+            {
+                var line = file.ReadLine();
+                if (line == null) break;
+
+                foreach (var l in list)
+                {
+                    int diffCars = 0;
+                    string c = string.Empty;
+                    for (int i = 0; i < l.Length; i++)
+                    {
+                        if (l[i] != line[i]) diffCars++;
+                        else c += l[i];
+
+                        if (diffCars >= 2) break;
+                    }
+                    if (diffCars == 1)
+                    {
+                        code = c;
+                        break;
+                    };
+                }
+
+                list.Add(line);
+            } while (code == null);
+
+            Console.WriteLine(code);
+        }
+    }
+}

+ 8 - 0
D2.2/Properties/launchSettings.json

@@ -0,0 +1,8 @@
+{
+  "profiles": {
+    "D02.2": {
+      "commandName": "Project",
+      "commandLineArgs": "\"D:\\adv\\Adv2018\\D2.2\\input.txt\""
+    }
+  }
+}

+ 250 - 0
D2.2/input.txt

@@ -0,0 +1,250 @@
+rmyxgdlihczskunpfwbgqoeybv
+rmyxgdlksczskunpfwbjqkeatv
+rmybgdxibczskunpfwbjqoeatv
+rmyxgdlirczskuopfwbjqzeatv
+rmyxedlrhczskunpfwbyqoeatv
+rmyxfdlicczskunpfwbxqoeatv
+rmyxgvlihkzskunpfwbsqoeatv
+rmyxgdaihczvkunpfwblqoeatv
+nmyxgolihczskunpfwbjqieatv
+rhyxgdcihczskunifwbjqoeatv
+rmfxgdlihczskunpfwbvqgeatv
+smyxgdlihczskunsiwbjqoeatv
+rmyxgdcihcxskunpfwbrqoeatv
+rmyxgdlihczckuiqfwbjqoeatv
+rmyxxdwihczskunifwbjqoeatv
+rkzxgdlihczskunpfwhjqoeatv
+rmypgdlihczskunpfwbrqoeafv
+rmyxgplihczvkunpkwbjqoeatv
+rqyxgdlihdzskjnpfwbjqoeatv
+rmyxgdlihczskqnpswbjqoeaov
+mcyxgdlihczmkunpfwbjqoeatv
+rmyxgdlohczspunpowbjqoeatv
+tmyxgdlihczskunpfwbeqoeltv
+rmyxgdlibccskunpfwbjqoegtv
+rmyxgdlehczsaunpfwboqoeatv
+rmaxgdlihczseunpfwbjqojatv
+rmyxgdlijczskynpfwbjboeatv
+kmlxgdlilczskunpfwbjqoeatv
+rmsxgdlshczskenpfwbjqoeatv
+rmbxgdlihcmskgnpfwbjqoeatv
+rayxgdlihczskunpfwbjqoeaef
+umyxgdlisczskunpfdbjqoeatv
+rmyxgdlihczskunsfwbjqieatg
+rmbxgdlihczhkunpfwbjqoeamv
+rmyxgdlihczskeypfwbjqxeatv
+rmyxgkrihczskunptwbjqoeatv
+rmyxgdlihczskunpawbjqoexiv
+rmyxgdlihcrskqnpfwbjqceatv
+rmyxgblihczskjnpfwbjqieatv
+rmyggdlidczskunofwbjqoeatv
+rmyxgdlghczskunphwbjqomatv
+rmqxgdbihczskunpfnbjqoeatv
+rvyxgdlihczsgunpfwbjqoeanv
+royxgdlnhczskqnpfwbjqoeatv
+rmyxgdlihczskugpfwbkqreatv
+rmyxfdlihczskunppwejqoeatv
+rqyxgdlipczskunpfwbjqoeqtv
+rmyxgdlicczskunpnwbjqotatv
+rmyxodlihczskxnpfwijqoeatv
+rmyxrdyihczskunpftbjqoeatv
+rmtxgdyihwzskunpfwbjqoeatv
+tmyxcdliiczskunpfwbjqoeatv
+rmyxgdlihczskmnpfwbjjoeadv
+rmyxgdnihczskunpqwbjqojatv
+bmyxgdlihczskcnpfwboqoeatv
+rmysgdlihcyskudpfwbjqoeatv
+rmyxgdtihczsmuupfwbjqoeatv
+rmyxgdlihczssunpffbjqolatv
+rmyogdlihczsklnpfwbjqoxatv
+rmyxgjlihczskunpfwsjqoyatv
+rmyxgalshczskunpfwbuqoeatv
+rmyfgdlihczskunqfwbiqoeatv
+tmyxgdlihczskunotwbjqoeatv
+rmyxpdzihczskuopfwbjqoeatv
+rmyfgdlihczskunpfrbgqoeatv
+rmyxgdlwhczskhnofwbjqoeatv
+rmyxgdlihczsmudpfrbjqoeatv
+rmyxgdlihczokanpfwbjqooatv
+rmyxrdlihczskunppwjjqoeatv
+rmyxgdjihczskwnpowbjqoeatv
+mmyxgdlihczikunpfwbjqoeamv
+rmyxgflihczshunpwwbjqoeatv
+rmytghlihczskunpfwbjqoeatk
+rmyxgdlipczmbunpfwbjqoeatv
+rmyxgdlihczkkonpfwbjqomatv
+rmfxgslihczskunpfwujqoeatv
+dmyxgdlihczykunqfwbjqoeatv
+rmyxgalihcbskunpgwbjqoeatv
+rmyxgdlinczqkunpfwbjqopatv
+rmyxgdlihwzslunplwbjqoeatv
+rmypgdlihczskdtpfwbjqoeatv
+rmsxgdxieczskunpfwbjqoeatv
+rmyxgdlihczskwnpfxrjqoeatv
+rmyxgdlihzzskunpflbjpoeatv
+rslxgdlihczsnunpfwbjqoeatv
+rmyxgdlmcczskunpfwbjqoealv
+fmkxgdbihczskunpfwbjqoeatv
+rmyxgdiigczxkunpfwbjqoeatv
+rjyxgnlqhczskunpfwbjqoeatv
+ymyxgolihczskunpfmbjqoeatv
+hmyxgdlihczskuncfwbjqoejtv
+rmyxgqlihczzkunpfwbjqojatv
+rmgfgdlihczskunpfwbjgoeatv
+rmyxgdlfhczskunpfwbjqweaxv
+rmoxtdlihczskunpfwdjqoeatv
+ruyxgdlihczskunpfmbjnoeatv
+rmnxgflehczskunpfwbjqoeatv
+rmyugdlihczskunpfwfjroeatv
+rmyxddbihczskunpfwbjqoeutv
+rmyxgdlipczskunofbbjqoeatv
+gmyxgdlihczskunpfkbjroeatv
+rmyxgdllhcpskunpfwbjqqeatv
+rmyxgdlihchskunpfwbjqoelcv
+mmyxldlihczskuncfwbjqoeatv
+ryyxgdlxhczskcnpfwbjqoeatv
+rmyxpdlihczskyntfwbjqoeatv
+rmhxgdlibczskwnpfwbjqoeatv
+rmyxgdlihczskunpfwojbkeatv
+qmyxgdlihczskunpfwbjqoyatm
+rmyxgdlzhczskunpfwbjqoealr
+rmyegdliqczskunpfgbjqoeatv
+umyxgdlihczsvunpfwbfqoeatv
+rmyxgdoihfzskunpfmbjqoeatv
+rmyxgdlihcdskanpmwbjqoeatv
+rmyxgdyihczskunpfrbjqoeaov
+rcyxgdlihczskuegfwbjqoeatv
+rmyxgdlihgwskunpfwbjkoeatv
+rpyxgdlihmzskunpfwbjqoeatp
+rmyxgdlihhzskunpfwbjaoeapv
+rmyxgdsrhczskunpflbjqoeatv
+rmrxgdlihczskunpvwbjqoeabv
+rmcxgylihczskunpfwbjyoeatv
+rmkxgdlyhczsounpfwbjqoeatv
+rmyxgdqihczskunmfwbjqoratv
+rmyxgdlihczskunpfibjqofath
+rmyxgdliqczskunpqwbjqoeaev
+rmhxgdlizcjskunpfwbjqoeatv
+rmyxgdlfhcwskunpfwbjqoeaqv
+rmyxgdlchclskunpfwbdqoeatv
+rmyxgdluhczswunpfwbjqoeatt
+rmyxgdlzqczskunpfwbjqoeatq
+rmdxgdlihszskunpfwbwqoeatv
+rmyxgdlihszsvunpfwbjqueatv
+rmyxgdlhhczskunpffbjaoeatv
+rmrxgdlphczskunpfwbjqreatv
+hmyngdxihczskunpfwbjqoeatv
+rmyxgdlizczpkunpfwbyqoeatv
+rmyxbdlihyzskunlfwbjqoeatv
+rmyxgdlipczsqunnfwbjqoeatv
+rmyxgdlihcsskunpfxbjqoaatv
+rmyxgdljhcznkunpfwbjqfeatv
+rmaxgdlihczspunpfwbjqoqatv
+rsyxgdlihczskunpfwbjqoehcv
+rmyxgjlicczskunpfwbjqoeitv
+rwymgvlihczskunpfwbjqoeatv
+rmyxgdlipfzskunpfwbjqweatv
+rmyxgglihczskunpgwbjqoealv
+royxgdlihczskhnpfwbyqoeatv
+rmyxgdlihczskvnpfabkqoeatv
+rmyxgdlihczskunpfwhjwzeatv
+jlyxgdlihczskunpfwbjqzeatv
+rmyxgdlihccskunpfwwjqopatv
+rmyxgxlihczskuupfwbjqoeahv
+rmyxgdcihcbskungfwbjqoeatv
+tmyxgdlihczskunpfwbjmoeftv
+rkyxgdlioczskmnpfwbjqoeatv
+rmyxgdlrhczskulpfwbjaoeatv
+rmysgdlihczikunphwbjqoeatv
+rmyxgdlihczskuvpfwbjqoeyty
+fmyxgdlihczscunpfqbjqoeatv
+rfyxgdlihzzrkunpfwbjqoeatv
+rmyxgdlikczskunpfwbjqolath
+rmyxqdlihjzskunpfwbjqoeamv
+rmuxodiihczskunpfwbjqoeatv
+rmyygdliucuskunpfwbjqoeatv
+rmyxgdliwczskuppawbjqoeatv
+rmyxgdlihczskunprwbjqgehtv
+imyvgdlihczskunpfwbjqouatv
+rgyxgdluhczskunpflbjqoeatv
+rmgxgdlihczsdunpfwwjqoeatv
+gdyxgdlihczskunpfwbjqoeavv
+rmyxgdlihczskunpfwljjoektv
+rmexgdlihczskunpfwxjqoeytv
+rmyxqdlihcyskuwpfwbjqoeatv
+rmyxgdlihczskunpfiyjqcebtv
+amyngdlihczskunpfwbjqseatv
+rmzxgdlihczykubpfwbjqoeatv
+rmyxgdlihczhkuopfwbjsoeatv
+rmyxgdlihczskunpfwbaqowztv
+rmgxgdlihczslunpfwbjeoeatv
+rmytgdlzhczskunrfwbjqoeatv
+rmyxgdtihczskunafobjqoeatv
+rmyxgdlihczskuflfbbjqoeatv
+rmdxgdlihczskunpfwbjqoealj
+rbyxgdlihczskuppdwbjqoeatv
+rmyxhdiihcwskunpfwbjqoeatv
+rmmggdlfhczskunpfwbjqoeatv
+rmbxgblihczskuypfwbjqoeatv
+rmyxgslihczsjunpjwbjqoeatv
+rmyxgdlohczsaunpfwbjboeatv
+rmaxgdhihczskunpfwbjooeatv
+rmyxidlihczskunpfgbuqoeatv
+rmyxgdlihfzckznpfwbjqoeatv
+rmaqgdpihczskunpfwbjqoeatv
+rmyvgdlirczskunpfobjqoeatv
+rmdxgdlihczlkunpxwbjqoeatv
+rmyxgdlihczseunpfwbjvdeatv
+rmyxgdlihczskuhpfwbjqneath
+rmyxrdlihciskunpfwbjqoratv
+rmyxgdmihczsqunpftbjqoeatv
+rmyxgdlbhczskulpfbbjqoeatv
+rmoxgdlihczskunpfwbjqoeesv
+rmyxgdlihczskuijfwejqoeatv
+rmyxgdlihczskunpfwnkqoxatv
+rmyxgdvihmzskuupfwbjqoeatv
+rkyxedlihczskunpfcbjqoeatv
+rmyxgdjihczskunprwbjqieatv
+omyxgqgihczskunpfwbjqoeatv
+rmyxydlihczskunpfwkjqoentv
+rmbxgdlicczskunpfwbjqteatv
+emyxgdlihczskugpfwbjqneatv
+dmyxgflihczskunpfwbjqjeatv
+umyxgdlihczskunpfwbjloextv
+rmyxgdlihczsbunpfwbyqpeatv
+rmyxgdrihczsvunpcwbjqoeatv
+qmyxgdlihcwsknnpfwbjqoeatv
+ymyxgdlihczskunpfsbjqowatv
+rmyxgdlbhczskunpnvbjqoeatv
+rmyxfdlixczskunpfwbjqoertv
+rmyygdlihszrkunpfwbjqoeatv
+rmyxgxlihcpskunpfwbjqoeanv
+rmyxgdlihczskjnpfwbjqoprtv
+rmyxgdlisczfkunpfwbjqoeath
+rmyxgdlihczskunpfkbjqoeaji
+rmyxgylihczskunpfwbfqoeatl
+rmsxgdbihczskunpfwtjqoeatv
+smyxgdlihczskunpfwbjqcwatv
+rmyxgdlihczskunppjljqoeatv
+rmyxgdlihczskulpfdbjooeatv
+rmyxgdlihczskunpfibjqcebtv
+rmyxadlihczskunpgwbjyoeatv
+rmyxgdlihczdkunpvwbjqoeytv
+rmyxgdlihcvskunpfwbjxohatv
+rmyxgplihczskunpfgbjqoeauv
+rmyxgdlihcysrunmfwbjqoeatv
+rmyygdlihczskunpfwbjqvewtv
+rmyxgdlihczsmunpfwdjnoeatv
+rmyxgdbibczskunpfwbjuoeatv
+rmyfgdlihczskubpfwbjqoeatp
+rmyxgdlihczskuopfzijqoeatv
+rmyqgdlihczskunpwwbjqoeanv
+imyxgdlihczskunpfwbjqoqytv
+rmyxgdlixcoskbnpfwbjqoeatv
+rmyxgrlihccskunpfwbjqteatv
+rdyxgdlihcpskunpfwbjqoratv
+rmyxgdlihkzskunpfwbjmoeatj
+rmyxgslihczskcnpfjbjqoeatv
+rmyxgdlihczsqunqfwdjqoeatv
+rjyxgdlyhczbkunpfwbjqoeatv
+rmyxudlihczjkunpfwbjqzeatv

+ 9 - 0
D3.1/D03.1.csproj

@@ -0,0 +1,9 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <OutputType>Exe</OutputType>
+    <TargetFramework>netcoreapp2.1</TargetFramework>
+    <RootNamespace>D3._1</RootNamespace>
+  </PropertyGroup>
+
+</Project>

+ 54 - 0
D3.1/Program.cs

@@ -0,0 +1,54 @@
+using System;
+using System.IO;
+using System.Text.RegularExpressions;
+
+namespace D3._1
+{
+    class Program
+    {
+        static void Main(string[] args)
+        {
+            if (args.Length < 1) return;
+            if (File.Exists(args[0]) == false) return;
+
+            var file = File.OpenText(args[0]);
+
+            var fabric = new int[1000, 1000];
+
+            do
+            {
+                var line = file.ReadLine();
+                if (line == null) break;
+
+                var l = line.Split("@")[1];
+
+                var xy = l.Split(":")[0];
+                var wh = l.Split(":")[1];
+
+                var x = int.Parse(xy.Split(",")[0]);
+                var y = int.Parse(xy.Split(",")[1]);
+                var w = int.Parse(wh.Split("x")[0]);
+                var h = int.Parse(wh.Split("x")[1]);
+
+                for (int i = x; i < x + w; i++)
+                {
+                    for (int j = y; j < y + h; j++)
+                    {
+                        fabric[i, j]++;
+                    }
+                }
+            } while (true);
+
+            int count = 0;
+            for (int x = 0; x < 1000; x++)
+            {
+                for (int y = 0; y < 1000; y++)
+                {
+                    if (fabric[x, y] >= 2) count++;
+                }
+            }
+
+            Console.WriteLine(count);
+        }
+    }
+}

+ 8 - 0
D3.1/Properties/launchSettings.json

@@ -0,0 +1,8 @@
+{
+  "profiles": {
+    "D03.1": {
+      "commandName": "Project",
+      "commandLineArgs": "\"D:\\adv\\Adv2018\\D3.1\\input.txt\""
+    }
+  }
+}

+ 1305 - 0
D3.1/input.txt

@@ -0,0 +1,1305 @@
+#1 @ 108,350: 22x29
+#2 @ 370,638: 13x12
+#3 @ 242,156: 26x23
+#4 @ 638,540: 14x27
+#5 @ 8,793: 24x29
+#6 @ 158,828: 15x15
+#7 @ 103,549: 22x26
+#8 @ 942,637: 15x15
+#9 @ 405,628: 19x11
+#10 @ 419,259: 18x12
+#11 @ 698,565: 15x22
+#12 @ 150,478: 23x12
+#13 @ 383,112: 25x23
+#14 @ 675,306: 28x19
+#15 @ 110,919: 19x18
+#16 @ 514,568: 23x19
+#17 @ 748,481: 22x23
+#18 @ 383,79: 13x6
+#19 @ 727,848: 19x18
+#20 @ 165,463: 10x18
+#21 @ 108,559: 21x23
+#22 @ 576,345: 13x19
+#23 @ 617,575: 26x11
+#24 @ 914,319: 10x29
+#25 @ 110,600: 11x16
+#26 @ 780,154: 14x18
+#27 @ 620,756: 11x21
+#28 @ 162,843: 17x22
+#29 @ 485,231: 10x27
+#30 @ 646,443: 17x19
+#31 @ 512,520: 20x28
+#32 @ 0,896: 24x27
+#33 @ 428,689: 24x11
+#34 @ 7,827: 11x22
+#35 @ 341,149: 11x23
+#36 @ 460,480: 28x16
+#37 @ 795,226: 27x23
+#38 @ 805,595: 21x15
+#39 @ 803,235: 17x19
+#40 @ 528,104: 25x25
+#41 @ 761,616: 21x29
+#42 @ 140,673: 16x10
+#43 @ 424,75: 18x23
+#44 @ 568,279: 22x14
+#45 @ 917,645: 22x24
+#46 @ 357,702: 18x28
+#47 @ 388,952: 29x16
+#48 @ 352,737: 22x21
+#49 @ 365,731: 18x20
+#50 @ 664,614: 11x23
+#51 @ 632,549: 18x20
+#52 @ 756,61: 28x11
+#53 @ 706,283: 28x14
+#54 @ 900,635: 19x29
+#55 @ 118,925: 10x19
+#56 @ 634,729: 26x19
+#57 @ 940,102: 24x13
+#58 @ 562,223: 17x16
+#59 @ 177,233: 23x23
+#60 @ 654,600: 27x12
+#61 @ 469,357: 12x6
+#62 @ 3,481: 28x28
+#63 @ 346,210: 19x22
+#64 @ 157,973: 20x13
+#65 @ 159,281: 27x12
+#66 @ 135,817: 29x16
+#67 @ 76,209: 28x27
+#68 @ 802,587: 26x28
+#69 @ 39,276: 16x12
+#70 @ 258,749: 19x25
+#71 @ 23,820: 26x24
+#72 @ 173,99: 20x16
+#73 @ 365,125: 23x22
+#74 @ 135,897: 21x15
+#75 @ 380,342: 24x19
+#76 @ 106,833: 26x25
+#77 @ 25,576: 11x23
+#78 @ 343,585: 21x10
+#79 @ 394,771: 11x25
+#80 @ 110,83: 29x24
+#81 @ 420,79: 28x17
+#82 @ 805,276: 29x11
+#83 @ 710,294: 10x29
+#84 @ 107,194: 14x21
+#85 @ 738,695: 15x16
+#86 @ 180,15: 13x25
+#87 @ 105,718: 27x23
+#88 @ 949,501: 20x21
+#89 @ 335,922: 14x26
+#90 @ 56,564: 12x20
+#91 @ 391,358: 13x29
+#92 @ 86,131: 11x16
+#93 @ 249,528: 22x29
+#94 @ 449,620: 28x15
+#95 @ 274,745: 14x15
+#96 @ 518,550: 21x21
+#97 @ 763,909: 28x24
+#98 @ 809,939: 24x19
+#99 @ 148,444: 22x21
+#100 @ 967,901: 24x20
+#101 @ 289,559: 19x27
+#102 @ 894,639: 10x16
+#103 @ 758,45: 15x15
+#104 @ 572,462: 20x16
+#105 @ 254,803: 14x20
+#106 @ 771,850: 17x19
+#107 @ 131,784: 27x11
+#108 @ 779,102: 23x21
+#109 @ 582,722: 19x12
+#110 @ 810,93: 27x12
+#111 @ 346,322: 18x20
+#112 @ 86,101: 21x24
+#113 @ 117,921: 14x11
+#114 @ 49,598: 18x19
+#115 @ 687,969: 27x28
+#116 @ 294,597: 17x13
+#117 @ 64,115: 29x13
+#118 @ 360,971: 13x12
+#119 @ 465,354: 21x13
+#120 @ 853,410: 19x25
+#121 @ 669,843: 17x19
+#122 @ 712,745: 21x18
+#123 @ 839,363: 18x26
+#124 @ 412,73: 29x27
+#125 @ 692,962: 14x15
+#126 @ 66,827: 10x10
+#127 @ 265,96: 19x18
+#128 @ 387,163: 26x29
+#129 @ 362,384: 11x16
+#130 @ 902,407: 21x11
+#131 @ 333,580: 28x16
+#132 @ 794,106: 15x18
+#133 @ 441,602: 11x28
+#134 @ 412,369: 26x15
+#135 @ 441,293: 24x27
+#136 @ 235,469: 24x25
+#137 @ 72,113: 19x16
+#138 @ 425,242: 11x25
+#139 @ 14,908: 12x23
+#140 @ 969,150: 17x19
+#141 @ 847,861: 26x23
+#142 @ 915,204: 22x28
+#143 @ 559,647: 15x27
+#144 @ 561,338: 15x23
+#145 @ 667,616: 4x18
+#146 @ 267,351: 22x12
+#147 @ 610,684: 13x10
+#148 @ 885,970: 21x12
+#149 @ 165,838: 20x10
+#150 @ 70,650: 26x24
+#151 @ 965,143: 19x23
+#152 @ 422,427: 13x10
+#153 @ 200,556: 10x21
+#154 @ 903,14: 25x12
+#155 @ 193,913: 23x24
+#156 @ 649,713: 25x29
+#157 @ 103,841: 13x22
+#158 @ 573,486: 10x16
+#159 @ 465,383: 27x11
+#160 @ 629,548: 17x22
+#161 @ 969,580: 29x25
+#162 @ 198,223: 29x17
+#163 @ 604,157: 27x23
+#164 @ 452,381: 29x23
+#165 @ 117,14: 11x12
+#166 @ 965,140: 13x29
+#167 @ 337,198: 22x24
+#168 @ 667,743: 21x21
+#169 @ 89,138: 23x28
+#170 @ 455,903: 18x21
+#171 @ 60,466: 13x29
+#172 @ 907,786: 11x23
+#173 @ 933,455: 12x18
+#174 @ 961,207: 28x16
+#175 @ 779,679: 12x20
+#176 @ 323,151: 5x13
+#177 @ 633,556: 13x23
+#178 @ 348,74: 21x19
+#179 @ 886,684: 12x12
+#180 @ 694,192: 20x15
+#181 @ 343,376: 25x24
+#182 @ 373,0: 10x27
+#183 @ 157,480: 10x16
+#184 @ 694,184: 17x11
+#185 @ 206,222: 24x17
+#186 @ 716,524: 24x26
+#187 @ 301,750: 15x15
+#188 @ 426,13: 19x14
+#189 @ 506,540: 29x17
+#190 @ 607,980: 25x14
+#191 @ 782,219: 14x29
+#192 @ 342,157: 15x20
+#193 @ 259,739: 27x25
+#194 @ 698,744: 16x10
+#195 @ 521,507: 22x28
+#196 @ 817,90: 28x19
+#197 @ 796,268: 11x11
+#198 @ 261,99: 12x13
+#199 @ 972,469: 15x15
+#200 @ 833,445: 18x17
+#201 @ 181,911: 27x16
+#202 @ 898,330: 12x15
+#203 @ 265,179: 14x29
+#204 @ 782,647: 20x18
+#205 @ 189,122: 18x16
+#206 @ 142,533: 25x29
+#207 @ 734,313: 21x27
+#208 @ 776,66: 24x12
+#209 @ 860,853: 10x23
+#210 @ 669,699: 15x27
+#211 @ 971,161: 20x12
+#212 @ 509,169: 29x29
+#213 @ 786,82: 27x15
+#214 @ 906,716: 24x16
+#215 @ 19,823: 18x27
+#216 @ 673,960: 22x18
+#217 @ 927,264: 22x13
+#218 @ 133,321: 10x14
+#219 @ 839,844: 26x15
+#220 @ 334,586: 18x25
+#221 @ 725,872: 22x21
+#222 @ 719,674: 11x13
+#223 @ 134,846: 26x23
+#224 @ 57,384: 10x26
+#225 @ 590,131: 27x29
+#226 @ 756,271: 14x19
+#227 @ 576,452: 14x25
+#228 @ 760,673: 20x13
+#229 @ 444,350: 26x10
+#230 @ 730,37: 12x13
+#231 @ 746,844: 3x15
+#232 @ 767,538: 19x10
+#233 @ 747,295: 22x20
+#234 @ 54,919: 12x22
+#235 @ 257,215: 28x25
+#236 @ 799,83: 28x14
+#237 @ 505,856: 17x14
+#238 @ 570,679: 23x24
+#239 @ 42,71: 26x28
+#240 @ 607,596: 22x16
+#241 @ 24,805: 16x21
+#242 @ 624,864: 20x26
+#243 @ 359,309: 14x18
+#244 @ 788,636: 16x27
+#245 @ 471,537: 18x16
+#246 @ 119,450: 19x21
+#247 @ 807,130: 20x25
+#248 @ 213,637: 25x17
+#249 @ 240,410: 12x29
+#250 @ 929,359: 18x16
+#251 @ 371,945: 16x18
+#252 @ 840,733: 13x11
+#253 @ 273,75: 28x26
+#254 @ 549,445: 27x10
+#255 @ 602,103: 18x20
+#256 @ 298,971: 29x25
+#257 @ 890,244: 12x25
+#258 @ 525,16: 12x14
+#259 @ 238,528: 16x19
+#260 @ 136,632: 16x17
+#261 @ 568,165: 11x12
+#262 @ 210,901: 24x27
+#263 @ 900,327: 17x23
+#264 @ 517,659: 12x19
+#265 @ 588,103: 23x26
+#266 @ 459,508: 23x28
+#267 @ 675,132: 15x10
+#268 @ 629,377: 11x23
+#269 @ 349,25: 15x23
+#270 @ 214,627: 14x19
+#271 @ 211,631: 24x25
+#272 @ 662,248: 13x10
+#273 @ 939,439: 20x10
+#274 @ 271,90: 20x25
+#275 @ 257,872: 19x16
+#276 @ 330,355: 23x14
+#277 @ 95,684: 25x28
+#278 @ 907,786: 21x17
+#279 @ 272,98: 7x10
+#280 @ 286,525: 20x27
+#281 @ 66,229: 13x15
+#282 @ 449,85: 25x26
+#283 @ 522,982: 16x17
+#284 @ 119,294: 25x18
+#285 @ 183,132: 15x26
+#286 @ 203,419: 21x11
+#287 @ 505,681: 12x28
+#288 @ 89,716: 28x22
+#289 @ 281,62: 25x21
+#290 @ 717,686: 19x22
+#291 @ 610,143: 11x29
+#292 @ 833,920: 11x27
+#293 @ 647,132: 16x15
+#294 @ 503,272: 14x21
+#295 @ 917,221: 15x27
+#296 @ 666,698: 24x25
+#297 @ 908,710: 18x16
+#298 @ 914,562: 25x24
+#299 @ 136,538: 14x22
+#300 @ 53,872: 21x22
+#301 @ 140,644: 28x23
+#302 @ 681,24: 24x29
+#303 @ 727,67: 13x19
+#304 @ 600,166: 12x16
+#305 @ 118,329: 19x23
+#306 @ 632,897: 10x28
+#307 @ 533,258: 14x27
+#308 @ 371,22: 24x16
+#309 @ 322,395: 13x22
+#310 @ 661,464: 25x14
+#311 @ 52,561: 17x24
+#312 @ 83,197: 10x15
+#313 @ 682,804: 22x12
+#314 @ 366,555: 22x27
+#315 @ 169,675: 13x24
+#316 @ 89,186: 23x21
+#317 @ 500,308: 13x20
+#318 @ 149,961: 28x21
+#319 @ 238,672: 15x27
+#320 @ 458,432: 25x15
+#321 @ 666,843: 12x25
+#322 @ 600,411: 16x18
+#323 @ 570,440: 26x28
+#324 @ 13,44: 18x27
+#325 @ 628,35: 13x20
+#326 @ 423,725: 24x13
+#327 @ 445,147: 15x24
+#328 @ 650,295: 17x17
+#329 @ 941,862: 22x26
+#330 @ 313,778: 10x18
+#331 @ 488,212: 23x20
+#332 @ 773,679: 16x28
+#333 @ 964,259: 10x19
+#334 @ 54,282: 21x16
+#335 @ 24,810: 28x26
+#336 @ 135,511: 10x15
+#337 @ 362,618: 5x21
+#338 @ 673,630: 17x17
+#339 @ 461,852: 20x11
+#340 @ 353,86: 13x10
+#341 @ 128,838: 17x16
+#342 @ 900,621: 28x23
+#343 @ 298,485: 20x15
+#344 @ 821,341: 24x28
+#345 @ 135,21: 14x25
+#346 @ 555,328: 29x16
+#347 @ 260,550: 28x21
+#348 @ 253,858: 15x22
+#349 @ 652,421: 11x19
+#350 @ 708,258: 18x10
+#351 @ 744,640: 21x20
+#352 @ 756,723: 21x21
+#353 @ 579,446: 13x15
+#354 @ 467,390: 18x28
+#355 @ 15,420: 29x19
+#356 @ 657,874: 28x27
+#357 @ 641,967: 16x23
+#358 @ 747,683: 17x12
+#359 @ 557,586: 10x26
+#360 @ 315,235: 29x19
+#361 @ 954,164: 22x23
+#362 @ 83,196: 10x25
+#363 @ 371,316: 11x24
+#364 @ 437,914: 25x27
+#365 @ 443,844: 12x16
+#366 @ 36,388: 16x29
+#367 @ 332,328: 18x12
+#368 @ 363,532: 11x16
+#369 @ 217,198: 17x29
+#370 @ 721,712: 25x17
+#371 @ 507,847: 20x14
+#372 @ 873,28: 11x21
+#373 @ 280,344: 20x5
+#374 @ 846,28: 18x18
+#375 @ 144,627: 12x26
+#376 @ 273,349: 15x25
+#377 @ 387,230: 21x24
+#378 @ 963,641: 26x26
+#379 @ 908,235: 24x11
+#380 @ 420,386: 28x19
+#381 @ 570,637: 21x29
+#382 @ 19,923: 14x27
+#383 @ 758,357: 27x16
+#384 @ 232,465: 11x18
+#385 @ 99,542: 16x28
+#386 @ 334,327: 11x19
+#387 @ 349,147: 10x25
+#388 @ 672,893: 12x26
+#389 @ 347,544: 26x27
+#390 @ 944,295: 18x24
+#391 @ 967,825: 13x10
+#392 @ 185,36: 17x16
+#393 @ 407,7: 25x18
+#394 @ 610,911: 21x23
+#395 @ 419,664: 16x16
+#396 @ 773,254: 13x24
+#397 @ 572,828: 25x20
+#398 @ 107,716: 20x20
+#399 @ 702,408: 13x10
+#400 @ 321,149: 11x19
+#401 @ 663,601: 11x29
+#402 @ 206,923: 19x17
+#403 @ 618,873: 15x13
+#404 @ 108,900: 16x21
+#405 @ 162,620: 16x29
+#406 @ 908,814: 18x28
+#407 @ 30,666: 10x15
+#408 @ 703,619: 20x12
+#409 @ 291,823: 25x25
+#410 @ 748,402: 28x10
+#411 @ 283,486: 16x18
+#412 @ 908,182: 16x16
+#413 @ 553,754: 19x24
+#414 @ 627,500: 13x16
+#415 @ 452,314: 25x25
+#416 @ 404,625: 17x28
+#417 @ 320,68: 28x26
+#418 @ 742,862: 13x19
+#419 @ 698,249: 25x16
+#420 @ 681,736: 16x12
+#421 @ 604,806: 18x15
+#422 @ 123,905: 27x19
+#423 @ 189,606: 17x26
+#424 @ 10,616: 27x16
+#425 @ 160,12: 19x18
+#426 @ 242,314: 18x29
+#427 @ 508,440: 25x10
+#428 @ 283,305: 9x4
+#429 @ 314,249: 27x22
+#430 @ 588,792: 17x23
+#431 @ 310,616: 26x12
+#432 @ 355,105: 16x23
+#433 @ 926,217: 14x16
+#434 @ 907,167: 16x10
+#435 @ 280,783: 17x17
+#436 @ 247,915: 19x25
+#437 @ 526,248: 21x14
+#438 @ 660,437: 23x19
+#439 @ 577,193: 26x25
+#440 @ 786,805: 28x16
+#441 @ 431,155: 24x15
+#442 @ 105,443: 9x5
+#443 @ 746,654: 23x29
+#444 @ 147,78: 21x19
+#445 @ 663,804: 22x15
+#446 @ 99,441: 19x10
+#447 @ 582,284: 25x28
+#448 @ 577,640: 7x20
+#449 @ 865,388: 11x23
+#450 @ 149,336: 20x11
+#451 @ 523,552: 12x12
+#452 @ 726,752: 12x28
+#453 @ 463,460: 11x13
+#454 @ 364,960: 13x29
+#455 @ 101,149: 17x11
+#456 @ 244,9: 19x22
+#457 @ 106,868: 26x29
+#458 @ 722,844: 16x18
+#459 @ 162,964: 24x21
+#460 @ 308,451: 18x25
+#461 @ 275,633: 27x10
+#462 @ 439,702: 24x18
+#463 @ 173,791: 19x29
+#464 @ 95,343: 12x19
+#465 @ 768,812: 27x23
+#466 @ 827,331: 17x22
+#467 @ 623,188: 26x11
+#468 @ 19,949: 19x23
+#469 @ 663,684: 26x10
+#470 @ 153,88: 24x20
+#471 @ 778,828: 26x24
+#472 @ 443,652: 21x15
+#473 @ 720,770: 15x6
+#474 @ 275,549: 22x23
+#475 @ 483,103: 27x16
+#476 @ 670,462: 13x11
+#477 @ 146,873: 26x27
+#478 @ 540,111: 18x17
+#479 @ 151,629: 25x11
+#480 @ 417,254: 22x29
+#481 @ 809,808: 13x13
+#482 @ 673,797: 13x23
+#483 @ 354,71: 17x12
+#484 @ 55,877: 11x21
+#485 @ 807,887: 14x14
+#486 @ 729,26: 19x27
+#487 @ 483,521: 28x22
+#488 @ 715,518: 14x14
+#489 @ 807,96: 12x14
+#490 @ 95,914: 28x27
+#491 @ 228,326: 26x27
+#492 @ 945,714: 25x28
+#493 @ 535,974: 11x16
+#494 @ 490,288: 23x26
+#495 @ 266,906: 11x19
+#496 @ 363,254: 25x13
+#497 @ 469,382: 23x14
+#498 @ 697,802: 27x18
+#499 @ 458,779: 27x27
+#500 @ 505,80: 25x13
+#501 @ 877,25: 22x11
+#502 @ 295,834: 11x12
+#503 @ 830,336: 16x14
+#504 @ 527,73: 20x16
+#505 @ 661,201: 24x19
+#506 @ 129,450: 25x13
+#507 @ 632,188: 14x12
+#508 @ 952,443: 18x24
+#509 @ 927,204: 13x29
+#510 @ 420,386: 27x12
+#511 @ 369,103: 25x26
+#512 @ 417,77: 14x10
+#513 @ 552,84: 19x29
+#514 @ 488,951: 28x14
+#515 @ 579,476: 20x11
+#516 @ 423,237: 11x21
+#517 @ 648,901: 28x24
+#518 @ 795,888: 20x13
+#519 @ 593,13: 6x4
+#520 @ 886,99: 18x16
+#521 @ 522,517: 28x29
+#522 @ 767,477: 11x21
+#523 @ 271,239: 21x14
+#524 @ 30,842: 24x21
+#525 @ 924,242: 13x7
+#526 @ 876,28: 22x23
+#527 @ 508,860: 22x27
+#528 @ 183,552: 20x20
+#529 @ 590,4: 13x17
+#530 @ 760,897: 19x19
+#531 @ 779,106: 28x16
+#532 @ 245,12: 15x25
+#533 @ 938,462: 26x17
+#534 @ 513,7: 18x16
+#535 @ 195,337: 13x28
+#536 @ 228,799: 28x11
+#537 @ 552,554: 13x12
+#538 @ 390,85: 26x12
+#539 @ 415,247: 15x14
+#540 @ 173,810: 21x11
+#541 @ 970,829: 12x11
+#542 @ 240,430: 11x21
+#543 @ 195,583: 20x18
+#544 @ 535,409: 15x11
+#545 @ 240,195: 28x14
+#546 @ 36,855: 23x17
+#547 @ 424,375: 19x15
+#548 @ 428,884: 29x16
+#549 @ 19,186: 23x27
+#550 @ 490,212: 24x11
+#551 @ 662,628: 14x18
+#552 @ 27,602: 13x24
+#553 @ 911,52: 26x15
+#554 @ 448,638: 23x20
+#555 @ 69,384: 29x21
+#556 @ 349,575: 20x23
+#557 @ 665,538: 28x22
+#558 @ 100,906: 29x18
+#559 @ 118,742: 16x13
+#560 @ 299,731: 23x29
+#561 @ 29,817: 14x12
+#562 @ 770,109: 23x10
+#563 @ 924,225: 15x13
+#564 @ 979,590: 14x24
+#565 @ 616,275: 23x15
+#566 @ 393,961: 13x10
+#567 @ 35,809: 19x13
+#568 @ 121,832: 11x18
+#569 @ 100,916: 27x11
+#570 @ 649,866: 23x11
+#571 @ 778,224: 20x26
+#572 @ 55,638: 24x16
+#573 @ 110,600: 11x18
+#574 @ 289,654: 25x12
+#575 @ 45,665: 28x15
+#576 @ 466,351: 19x26
+#577 @ 722,123: 14x13
+#578 @ 508,848: 25x18
+#579 @ 802,80: 15x24
+#580 @ 478,118: 26x23
+#581 @ 147,432: 28x22
+#582 @ 920,383: 29x27
+#583 @ 414,788: 28x12
+#584 @ 190,588: 15x11
+#585 @ 117,674: 23x22
+#586 @ 203,953: 18x19
+#587 @ 0,605: 18x29
+#588 @ 711,347: 29x18
+#589 @ 117,214: 12x22
+#590 @ 547,112: 22x17
+#591 @ 243,154: 14x22
+#592 @ 628,943: 10x17
+#593 @ 555,738: 21x23
+#594 @ 276,504: 27x17
+#595 @ 396,352: 23x29
+#596 @ 454,145: 17x27
+#597 @ 738,718: 22x16
+#598 @ 903,21: 14x10
+#599 @ 400,768: 17x26
+#600 @ 712,92: 10x11
+#601 @ 784,698: 14x29
+#602 @ 586,654: 18x18
+#603 @ 512,595: 27x25
+#604 @ 573,439: 15x24
+#605 @ 457,488: 18x23
+#606 @ 628,708: 17x23
+#607 @ 246,707: 20x13
+#608 @ 555,85: 28x19
+#609 @ 812,344: 11x4
+#610 @ 825,437: 15x29
+#611 @ 131,283: 18x22
+#612 @ 496,287: 27x18
+#613 @ 385,397: 14x16
+#614 @ 776,944: 12x15
+#615 @ 618,895: 12x26
+#616 @ 289,518: 26x24
+#617 @ 944,252: 24x26
+#618 @ 182,102: 17x10
+#619 @ 729,540: 26x12
+#620 @ 262,899: 25x15
+#621 @ 330,366: 17x22
+#622 @ 471,908: 24x19
+#623 @ 401,229: 13x19
+#624 @ 864,145: 26x14
+#625 @ 357,976: 24x22
+#626 @ 698,357: 22x21
+#627 @ 893,659: 29x10
+#628 @ 111,320: 11x23
+#629 @ 956,256: 16x19
+#630 @ 620,269: 15x10
+#631 @ 217,409: 16x11
+#632 @ 29,693: 23x20
+#633 @ 297,925: 28x19
+#634 @ 257,327: 26x25
+#635 @ 942,495: 14x29
+#636 @ 683,761: 21x19
+#637 @ 525,547: 22x21
+#638 @ 93,254: 27x11
+#639 @ 150,815: 26x22
+#640 @ 193,817: 23x20
+#641 @ 116,310: 27x22
+#642 @ 60,611: 12x26
+#643 @ 255,901: 14x18
+#644 @ 263,664: 10x12
+#645 @ 831,802: 28x15
+#646 @ 810,407: 25x14
+#647 @ 177,157: 14x28
+#648 @ 928,646: 27x10
+#649 @ 193,228: 20x25
+#650 @ 289,601: 28x27
+#651 @ 785,638: 27x24
+#652 @ 788,206: 22x10
+#653 @ 3,92: 24x28
+#654 @ 935,755: 29x11
+#655 @ 446,464: 22x21
+#656 @ 114,812: 28x29
+#657 @ 309,453: 24x14
+#658 @ 572,365: 14x22
+#659 @ 930,882: 29x21
+#660 @ 752,121: 29x23
+#661 @ 164,686: 13x26
+#662 @ 244,565: 17x18
+#663 @ 691,860: 17x20
+#664 @ 628,198: 13x4
+#665 @ 203,819: 11x13
+#666 @ 600,425: 14x13
+#667 @ 611,605: 20x11
+#668 @ 902,93: 24x17
+#669 @ 347,249: 18x19
+#670 @ 333,956: 29x15
+#671 @ 106,0: 29x16
+#672 @ 676,137: 19x24
+#673 @ 545,355: 28x15
+#674 @ 234,620: 25x28
+#675 @ 884,413: 10x3
+#676 @ 854,407: 27x20
+#677 @ 113,853: 12x25
+#678 @ 857,130: 19x16
+#679 @ 460,154: 25x28
+#680 @ 732,125: 16x18
+#681 @ 840,539: 24x17
+#682 @ 124,405: 11x12
+#683 @ 618,691: 15x16
+#684 @ 330,563: 29x24
+#685 @ 511,859: 23x12
+#686 @ 911,781: 21x17
+#687 @ 527,69: 10x29
+#688 @ 825,578: 21x12
+#689 @ 965,175: 22x25
+#690 @ 230,188: 17x24
+#691 @ 462,880: 27x15
+#692 @ 75,128: 21x16
+#693 @ 350,582: 21x18
+#694 @ 377,72: 28x22
+#695 @ 882,836: 17x19
+#696 @ 25,419: 17x26
+#697 @ 987,886: 12x23
+#698 @ 918,415: 16x18
+#699 @ 793,344: 29x25
+#700 @ 380,609: 12x10
+#701 @ 241,428: 29x18
+#702 @ 363,15: 11x20
+#703 @ 438,552: 21x10
+#704 @ 582,144: 21x19
+#705 @ 192,815: 19x13
+#706 @ 750,625: 18x22
+#707 @ 326,980: 25x13
+#708 @ 613,480: 20x14
+#709 @ 913,722: 16x12
+#710 @ 405,254: 23x20
+#711 @ 423,380: 10x27
+#712 @ 641,578: 16x15
+#713 @ 639,967: 29x17
+#714 @ 903,184: 10x22
+#715 @ 569,258: 13x25
+#716 @ 839,319: 10x29
+#717 @ 67,63: 22x12
+#718 @ 987,905: 12x21
+#719 @ 619,196: 26x13
+#720 @ 290,637: 10x24
+#721 @ 197,905: 14x28
+#722 @ 705,615: 13x26
+#723 @ 677,527: 16x18
+#724 @ 605,204: 21x25
+#725 @ 615,210: 11x24
+#726 @ 582,436: 13x24
+#727 @ 314,50: 20x22
+#728 @ 207,118: 29x26
+#729 @ 764,638: 27x11
+#730 @ 320,336: 26x24
+#731 @ 911,633: 28x14
+#732 @ 385,556: 27x24
+#733 @ 447,884: 12x14
+#734 @ 700,74: 26x28
+#735 @ 13,552: 23x28
+#736 @ 236,580: 11x23
+#737 @ 122,14: 28x14
+#738 @ 289,468: 16x13
+#739 @ 170,28: 23x18
+#740 @ 924,721: 12x13
+#741 @ 40,740: 20x27
+#742 @ 424,283: 18x28
+#743 @ 584,102: 27x11
+#744 @ 511,485: 16x25
+#745 @ 569,98: 28x18
+#746 @ 480,948: 20x12
+#747 @ 412,392: 11x17
+#748 @ 751,914: 24x10
+#749 @ 21,959: 13x11
+#750 @ 266,49: 13x23
+#751 @ 890,625: 10x22
+#752 @ 973,186: 14x15
+#753 @ 21,594: 15x24
+#754 @ 115,839: 5x6
+#755 @ 449,552: 12x29
+#756 @ 475,747: 23x29
+#757 @ 567,559: 28x20
+#758 @ 836,529: 25x27
+#759 @ 280,302: 29x11
+#760 @ 400,637: 26x22
+#761 @ 389,336: 20x29
+#762 @ 93,745: 26x27
+#763 @ 70,821: 11x29
+#764 @ 36,794: 10x24
+#765 @ 623,189: 20x17
+#766 @ 720,620: 16x29
+#767 @ 695,798: 25x12
+#768 @ 120,381: 28x10
+#769 @ 667,840: 29x13
+#770 @ 13,31: 15x22
+#771 @ 667,621: 14x22
+#772 @ 819,580: 18x19
+#773 @ 165,434: 25x28
+#774 @ 387,831: 25x26
+#775 @ 267,189: 11x19
+#776 @ 515,161: 25x24
+#777 @ 497,941: 13x28
+#778 @ 810,352: 14x21
+#779 @ 29,864: 17x15
+#780 @ 339,318: 14x24
+#781 @ 969,649: 16x4
+#782 @ 429,788: 11x29
+#783 @ 346,69: 18x29
+#784 @ 930,705: 28x24
+#785 @ 705,770: 26x23
+#786 @ 721,599: 10x15
+#787 @ 467,212: 28x12
+#788 @ 444,85: 15x24
+#789 @ 614,146: 3x19
+#790 @ 190,448: 16x12
+#791 @ 5,99: 13x7
+#792 @ 23,668: 10x25
+#793 @ 725,265: 10x18
+#794 @ 667,321: 27x12
+#795 @ 0,774: 28x26
+#796 @ 812,15: 14x26
+#797 @ 947,480: 15x17
+#798 @ 599,676: 21x22
+#799 @ 181,19: 10x20
+#800 @ 955,162: 20x17
+#801 @ 515,865: 20x13
+#802 @ 13,812: 26x28
+#803 @ 553,841: 27x28
+#804 @ 80,62: 21x11
+#805 @ 189,430: 22x25
+#806 @ 605,191: 19x12
+#807 @ 65,31: 26x16
+#808 @ 8,410: 27x16
+#809 @ 860,845: 27x16
+#810 @ 358,968: 17x15
+#811 @ 448,867: 17x11
+#812 @ 862,678: 24x20
+#813 @ 272,665: 20x14
+#814 @ 427,95: 22x11
+#815 @ 703,285: 14x14
+#816 @ 756,124: 23x24
+#817 @ 396,69: 27x18
+#818 @ 619,483: 14x23
+#819 @ 671,35: 21x23
+#820 @ 234,717: 24x16
+#821 @ 269,97: 24x16
+#822 @ 677,882: 23x27
+#823 @ 852,343: 16x25
+#824 @ 99,902: 29x10
+#825 @ 345,542: 28x23
+#826 @ 572,256: 11x26
+#827 @ 576,421: 21x28
+#828 @ 893,727: 21x10
+#829 @ 47,381: 15x12
+#830 @ 887,955: 12x16
+#831 @ 637,498: 22x21
+#832 @ 303,530: 21x11
+#833 @ 727,855: 25x14
+#834 @ 21,148: 12x16
+#835 @ 537,391: 18x25
+#836 @ 498,670: 16x12
+#837 @ 944,715: 20x15
+#838 @ 944,696: 24x26
+#839 @ 907,202: 15x10
+#840 @ 87,68: 22x13
+#841 @ 842,789: 25x17
+#842 @ 187,187: 21x18
+#843 @ 679,540: 28x12
+#844 @ 877,681: 24x11
+#845 @ 933,43: 15x18
+#846 @ 979,217: 20x24
+#847 @ 596,219: 23x21
+#848 @ 892,403: 29x15
+#849 @ 411,383: 10x21
+#850 @ 368,263: 11x19
+#851 @ 65,407: 12x23
+#852 @ 592,666: 27x16
+#853 @ 253,77: 29x22
+#854 @ 133,667: 14x20
+#855 @ 439,683: 11x24
+#856 @ 786,881: 11x18
+#857 @ 544,114: 19x19
+#858 @ 88,355: 24x10
+#859 @ 148,277: 14x23
+#860 @ 83,553: 10x22
+#861 @ 534,922: 27x20
+#862 @ 508,22: 27x17
+#863 @ 700,398: 12x28
+#864 @ 42,288: 16x16
+#865 @ 111,303: 15x19
+#866 @ 615,652: 14x28
+#867 @ 243,650: 14x26
+#868 @ 142,551: 12x29
+#869 @ 989,909: 4x6
+#870 @ 831,331: 13x17
+#871 @ 53,731: 26x27
+#872 @ 824,453: 14x17
+#873 @ 253,110: 10x27
+#874 @ 226,913: 15x23
+#875 @ 745,790: 13x20
+#876 @ 310,928: 25x20
+#877 @ 307,354: 10x14
+#878 @ 466,734: 19x23
+#879 @ 159,966: 21x26
+#880 @ 898,55: 23x10
+#881 @ 744,392: 11x24
+#882 @ 950,95: 18x15
+#883 @ 886,824: 29x29
+#884 @ 137,689: 19x23
+#885 @ 326,390: 12x20
+#886 @ 39,424: 27x15
+#887 @ 606,682: 13x16
+#888 @ 427,244: 29x21
+#889 @ 214,931: 13x16
+#890 @ 493,442: 26x13
+#891 @ 718,768: 21x11
+#892 @ 186,199: 21x24
+#893 @ 88,560: 29x13
+#894 @ 89,188: 13x23
+#895 @ 801,909: 23x11
+#896 @ 644,975: 28x16
+#897 @ 163,423: 15x27
+#898 @ 929,640: 13x16
+#899 @ 135,338: 18x10
+#900 @ 822,573: 12x23
+#901 @ 800,364: 19x17
+#902 @ 82,108: 25x25
+#903 @ 795,916: 24x23
+#904 @ 255,548: 12x13
+#905 @ 124,835: 25x16
+#906 @ 624,953: 20x22
+#907 @ 47,837: 13x25
+#908 @ 922,239: 18x18
+#909 @ 346,44: 10x14
+#910 @ 445,169: 21x19
+#911 @ 833,568: 23x23
+#912 @ 660,608: 17x21
+#913 @ 105,554: 15x16
+#914 @ 801,16: 27x26
+#915 @ 750,763: 21x25
+#916 @ 677,280: 26x26
+#917 @ 169,439: 29x23
+#918 @ 380,595: 19x28
+#919 @ 808,340: 20x22
+#920 @ 268,556: 16x17
+#921 @ 626,771: 23x27
+#922 @ 111,619: 17x13
+#923 @ 578,678: 11x24
+#924 @ 611,387: 16x14
+#925 @ 359,615: 14x29
+#926 @ 911,357: 28x21
+#927 @ 958,761: 12x11
+#928 @ 956,302: 19x12
+#929 @ 908,146: 20x26
+#930 @ 588,358: 18x17
+#931 @ 645,234: 21x18
+#932 @ 561,432: 12x25
+#933 @ 278,342: 26x10
+#934 @ 360,940: 19x12
+#935 @ 495,293: 16x14
+#936 @ 714,728: 21x24
+#937 @ 68,651: 21x25
+#938 @ 290,743: 26x18
+#939 @ 355,874: 11x25
+#940 @ 491,754: 16x24
+#941 @ 278,596: 19x12
+#942 @ 782,157: 20x16
+#943 @ 118,468: 12x23
+#944 @ 279,783: 10x29
+#945 @ 929,858: 25x19
+#946 @ 626,971: 21x13
+#947 @ 713,663: 11x28
+#948 @ 940,493: 25x25
+#949 @ 458,869: 11x12
+#950 @ 730,318: 28x20
+#951 @ 957,904: 29x28
+#952 @ 522,693: 28x27
+#953 @ 606,558: 14x20
+#954 @ 43,788: 12x21
+#955 @ 554,541: 28x27
+#956 @ 259,118: 11x26
+#957 @ 491,757: 15x10
+#958 @ 429,360: 19x13
+#959 @ 560,721: 18x26
+#960 @ 881,31: 11x15
+#961 @ 110,339: 24x29
+#962 @ 359,205: 25x25
+#963 @ 926,35: 22x24
+#964 @ 892,550: 24x20
+#965 @ 657,242: 25x21
+#966 @ 413,255: 22x21
+#967 @ 673,706: 12x16
+#968 @ 431,306: 13x27
+#969 @ 105,570: 18x11
+#970 @ 912,168: 12x27
+#971 @ 157,911: 23x23
+#972 @ 647,398: 14x29
+#973 @ 676,515: 14x28
+#974 @ 879,778: 24x13
+#975 @ 129,524: 24x29
+#976 @ 239,560: 16x22
+#977 @ 894,407: 10x18
+#978 @ 539,892: 26x19
+#979 @ 46,930: 22x23
+#980 @ 893,152: 16x17
+#981 @ 279,191: 21x10
+#982 @ 764,368: 26x11
+#983 @ 138,81: 25x22
+#984 @ 672,207: 19x18
+#985 @ 21,471: 26x13
+#986 @ 863,784: 19x25
+#987 @ 754,800: 15x19
+#988 @ 170,292: 15x27
+#989 @ 472,45: 10x16
+#990 @ 160,570: 26x17
+#991 @ 3,567: 22x28
+#992 @ 378,134: 21x13
+#993 @ 724,612: 10x15
+#994 @ 21,193: 20x19
+#995 @ 861,849: 14x12
+#996 @ 507,666: 18x10
+#997 @ 920,169: 21x16
+#998 @ 851,217: 12x27
+#999 @ 356,888: 26x27
+#1000 @ 264,513: 15x12
+#1001 @ 975,903: 10x14
+#1002 @ 665,838: 15x25
+#1003 @ 582,732: 29x11
+#1004 @ 246,413: 20x25
+#1005 @ 862,447: 17x22
+#1006 @ 795,939: 18x18
+#1007 @ 317,650: 15x12
+#1008 @ 821,123: 13x10
+#1009 @ 448,890: 20x15
+#1010 @ 202,20: 13x18
+#1011 @ 706,561: 15x11
+#1012 @ 891,480: 16x21
+#1013 @ 82,540: 24x18
+#1014 @ 845,32: 11x13
+#1015 @ 184,198: 12x14
+#1016 @ 98,141: 16x11
+#1017 @ 282,331: 20x28
+#1018 @ 760,273: 3x7
+#1019 @ 776,848: 14x15
+#1020 @ 443,285: 20x23
+#1021 @ 518,405: 29x22
+#1022 @ 22,139: 27x14
+#1023 @ 260,558: 29x11
+#1024 @ 924,369: 16x16
+#1025 @ 517,383: 13x12
+#1026 @ 461,443: 14x18
+#1027 @ 526,19: 17x10
+#1028 @ 760,904: 17x22
+#1029 @ 702,241: 20x19
+#1030 @ 763,250: 22x28
+#1031 @ 408,86: 12x19
+#1032 @ 714,493: 17x26
+#1033 @ 61,60: 22x27
+#1034 @ 878,479: 18x14
+#1035 @ 422,602: 22x22
+#1036 @ 307,527: 27x12
+#1037 @ 100,725: 29x17
+#1038 @ 241,207: 17x12
+#1039 @ 156,826: 22x22
+#1040 @ 210,22: 27x28
+#1041 @ 760,280: 28x25
+#1042 @ 112,833: 13x19
+#1043 @ 770,622: 21x11
+#1044 @ 229,881: 24x10
+#1045 @ 16,808: 20x19
+#1046 @ 183,583: 14x28
+#1047 @ 181,106: 17x25
+#1048 @ 580,65: 26x22
+#1049 @ 428,915: 27x13
+#1050 @ 300,534: 26x14
+#1051 @ 810,899: 23x11
+#1052 @ 672,627: 20x10
+#1053 @ 153,52: 11x28
+#1054 @ 610,10: 23x10
+#1055 @ 379,192: 26x22
+#1056 @ 161,743: 14x21
+#1057 @ 250,98: 23x20
+#1058 @ 46,487: 19x18
+#1059 @ 628,180: 17x16
+#1060 @ 54,761: 24x14
+#1061 @ 412,600: 21x13
+#1062 @ 17,910: 11x23
+#1063 @ 841,649: 21x22
+#1064 @ 110,310: 16x27
+#1065 @ 833,528: 15x11
+#1066 @ 98,862: 27x12
+#1067 @ 88,838: 28x19
+#1068 @ 272,464: 29x25
+#1069 @ 917,666: 29x20
+#1070 @ 222,127: 10x27
+#1071 @ 449,466: 23x16
+#1072 @ 258,331: 13x23
+#1073 @ 476,491: 18x11
+#1074 @ 390,75: 15x29
+#1075 @ 217,863: 17x24
+#1076 @ 334,227: 18x29
+#1077 @ 437,723: 11x15
+#1078 @ 662,846: 18x12
+#1079 @ 384,394: 24x27
+#1080 @ 675,965: 16x6
+#1081 @ 700,687: 16x29
+#1082 @ 443,859: 22x27
+#1083 @ 245,327: 19x24
+#1084 @ 676,807: 28x27
+#1085 @ 846,224: 14x21
+#1086 @ 58,744: 14x19
+#1087 @ 680,543: 23x20
+#1088 @ 790,267: 16x14
+#1089 @ 447,217: 27x26
+#1090 @ 140,961: 29x18
+#1091 @ 53,373: 24x12
+#1092 @ 549,222: 17x12
+#1093 @ 839,926: 22x14
+#1094 @ 21,690: 22x19
+#1095 @ 377,157: 16x13
+#1096 @ 664,637: 21x10
+#1097 @ 355,965: 20x12
+#1098 @ 949,474: 14x26
+#1099 @ 161,850: 17x25
+#1100 @ 104,408: 21x20
+#1101 @ 526,553: 20x19
+#1102 @ 126,527: 18x24
+#1103 @ 308,346: 28x21
+#1104 @ 808,406: 11x25
+#1105 @ 516,80: 14x29
+#1106 @ 767,40: 16x28
+#1107 @ 2,828: 10x27
+#1108 @ 317,655: 27x10
+#1109 @ 877,287: 15x16
+#1110 @ 133,443: 28x24
+#1111 @ 141,758: 28x28
+#1112 @ 1,105: 16x18
+#1113 @ 100,915: 14x17
+#1114 @ 544,666: 26x14
+#1115 @ 167,75: 22x17
+#1116 @ 322,922: 19x19
+#1117 @ 725,844: 13x29
+#1118 @ 610,217: 18x16
+#1119 @ 397,97: 17x15
+#1120 @ 68,52: 21x24
+#1121 @ 565,338: 12x10
+#1122 @ 672,951: 11x24
+#1123 @ 561,448: 13x16
+#1124 @ 785,858: 14x23
+#1125 @ 650,828: 15x21
+#1126 @ 442,693: 16x15
+#1127 @ 612,673: 13x19
+#1128 @ 330,215: 28x18
+#1129 @ 841,732: 23x23
+#1130 @ 200,433: 11x12
+#1131 @ 507,277: 23x27
+#1132 @ 259,917: 20x11
+#1133 @ 150,12: 11x26
+#1134 @ 112,628: 26x17
+#1135 @ 263,894: 25x13
+#1136 @ 332,251: 29x16
+#1137 @ 134,546: 22x11
+#1138 @ 808,338: 23x17
+#1139 @ 610,8: 25x23
+#1140 @ 547,908: 22x17
+#1141 @ 731,243: 28x25
+#1142 @ 558,550: 21x25
+#1143 @ 833,443: 15x28
+#1144 @ 290,823: 14x28
+#1145 @ 886,724: 12x29
+#1146 @ 219,214: 13x14
+#1147 @ 397,845: 21x18
+#1148 @ 153,639: 10x23
+#1149 @ 396,833: 13x20
+#1150 @ 773,136: 17x16
+#1151 @ 523,89: 11x23
+#1152 @ 48,692: 12x24
+#1153 @ 942,871: 20x18
+#1154 @ 74,296: 24x28
+#1155 @ 10,859: 23x16
+#1156 @ 155,478: 17x24
+#1157 @ 151,954: 18x19
+#1158 @ 846,525: 25x28
+#1159 @ 277,194: 13x10
+#1160 @ 458,935: 25x15
+#1161 @ 263,235: 23x28
+#1162 @ 262,48: 19x21
+#1163 @ 499,388: 22x29
+#1164 @ 760,776: 11x27
+#1165 @ 196,628: 19x28
+#1166 @ 126,200: 10x11
+#1167 @ 632,890: 14x25
+#1168 @ 868,275: 14x26
+#1169 @ 90,540: 20x28
+#1170 @ 117,526: 12x16
+#1171 @ 276,652: 17x14
+#1172 @ 828,206: 16x24
+#1173 @ 705,283: 12x28
+#1174 @ 478,770: 13x23
+#1175 @ 838,393: 29x20
+#1176 @ 911,791: 16x15
+#1177 @ 304,388: 12x20
+#1178 @ 560,808: 25x24
+#1179 @ 213,669: 28x14
+#1180 @ 130,842: 7x5
+#1181 @ 938,447: 15x11
+#1182 @ 116,864: 10x12
+#1183 @ 234,33: 24x14
+#1184 @ 392,850: 10x10
+#1185 @ 952,153: 21x26
+#1186 @ 884,318: 28x13
+#1187 @ 413,418: 14x20
+#1188 @ 203,908: 12x22
+#1189 @ 265,108: 19x25
+#1190 @ 737,842: 25x21
+#1191 @ 380,103: 29x15
+#1192 @ 821,323: 16x14
+#1193 @ 393,91: 4x6
+#1194 @ 262,892: 19x17
+#1195 @ 355,700: 14x17
+#1196 @ 561,755: 17x13
+#1197 @ 455,132: 28x27
+#1198 @ 627,580: 20x20
+#1199 @ 363,333: 21x13
+#1200 @ 55,812: 12x28
+#1201 @ 622,43: 22x10
+#1202 @ 665,951: 11x14
+#1203 @ 468,444: 13x23
+#1204 @ 113,796: 17x22
+#1205 @ 562,739: 18x18
+#1206 @ 150,898: 13x14
+#1207 @ 822,219: 26x17
+#1208 @ 476,851: 16x17
+#1209 @ 499,589: 23x18
+#1210 @ 639,847: 25x22
+#1211 @ 543,925: 20x24
+#1212 @ 629,203: 29x12
+#1213 @ 567,727: 23x27
+#1214 @ 96,264: 28x24
+#1215 @ 618,379: 12x28
+#1216 @ 945,429: 11x21
+#1217 @ 677,305: 24x27
+#1218 @ 285,383: 22x10
+#1219 @ 949,515: 16x21
+#1220 @ 465,20: 27x27
+#1221 @ 560,596: 13x14
+#1222 @ 882,411: 17x10
+#1223 @ 659,471: 16x10
+#1224 @ 563,866: 25x26
+#1225 @ 384,634: 20x21
+#1226 @ 959,472: 22x10
+#1227 @ 757,684: 18x19
+#1228 @ 894,247: 14x11
+#1229 @ 804,268: 29x26
+#1230 @ 100,575: 26x16
+#1231 @ 741,680: 16x18
+#1232 @ 86,343: 26x18
+#1233 @ 749,804: 24x14
+#1234 @ 420,671: 16x26
+#1235 @ 661,455: 12x18
+#1236 @ 518,394: 27x21
+#1237 @ 210,437: 16x17
+#1238 @ 554,147: 23x23
+#1239 @ 622,945: 15x13
+#1240 @ 195,325: 26x22
+#1241 @ 456,536: 22x25
+#1242 @ 645,678: 23x10
+#1243 @ 367,610: 18x29
+#1244 @ 44,35: 27x25
+#1245 @ 362,574: 27x20
+#1246 @ 301,262: 25x17
+#1247 @ 278,735: 15x28
+#1248 @ 214,19: 29x28
+#1249 @ 100,152: 27x19
+#1250 @ 549,691: 16x11
+#1251 @ 413,80: 12x10
+#1252 @ 644,129: 19x15
+#1253 @ 708,243: 25x14
+#1254 @ 235,575: 14x15
+#1255 @ 26,767: 15x16
+#1256 @ 3,97: 18x20
+#1257 @ 256,655: 24x23
+#1258 @ 778,535: 28x23
+#1259 @ 773,146: 27x14
+#1260 @ 67,287: 21x11
+#1261 @ 796,207: 24x11
+#1262 @ 687,875: 10x19
+#1263 @ 593,374: 21x20
+#1264 @ 923,620: 29x18
+#1265 @ 130,778: 23x26
+#1266 @ 165,769: 29x26
+#1267 @ 262,916: 25x26
+#1268 @ 434,530: 26x11
+#1269 @ 48,827: 10x19
+#1270 @ 446,192: 13x28
+#1271 @ 292,532: 21x20
+#1272 @ 465,308: 13x23
+#1273 @ 30,290: 21x28
+#1274 @ 347,164: 23x19
+#1275 @ 3,691: 24x15
+#1276 @ 567,201: 18x26
+#1277 @ 729,594: 27x17
+#1278 @ 578,51: 13x26
+#1279 @ 652,239: 18x23
+#1280 @ 349,259: 14x29
+#1281 @ 7,605: 23x19
+#1282 @ 249,755: 29x21
+#1283 @ 836,656: 29x19
+#1284 @ 183,838: 10x12
+#1285 @ 285,820: 22x24
+#1286 @ 646,280: 24x16
+#1287 @ 176,186: 24x18
+#1288 @ 941,165: 27x15
+#1289 @ 617,566: 23x12
+#1290 @ 302,795: 13x17
+#1291 @ 729,56: 12x14
+#1292 @ 176,422: 25x22
+#1293 @ 603,554: 25x28
+#1294 @ 524,81: 10x13
+#1295 @ 840,667: 23x18
+#1296 @ 781,949: 28x24
+#1297 @ 132,378: 12x17
+#1298 @ 212,954: 12x12
+#1299 @ 760,599: 13x29
+#1300 @ 872,461: 11x29
+#1301 @ 690,546: 21x29
+#1302 @ 382,28: 22x15
+#1303 @ 703,776: 12x10
+#1304 @ 545,317: 21x26
+#1305 @ 148,699: 27x18

+ 9 - 0
D3.2/D03.2.csproj

@@ -0,0 +1,9 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <OutputType>Exe</OutputType>
+    <TargetFramework>netcoreapp2.1</TargetFramework>
+    <RootNamespace>D3._2</RootNamespace>
+  </PropertyGroup>
+
+</Project>

+ 71 - 0
D3.2/Program.cs

@@ -0,0 +1,71 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+
+namespace D3._2
+{
+    class Program
+    {
+        static void Main(string[] args)
+        {
+            if (args.Length < 1) return;
+            if (File.Exists(args[0]) == false) return;
+
+            var file = File.OpenText(args[0]);
+
+            var fabric = new HashSet<string>[1000, 1000];
+
+            do
+            {
+                var line = file.ReadLine();
+                if (line == null) break;
+
+                var n = line.Split("@")[0];
+                var l = line.Split("@")[1];
+
+                var xy = l.Split(":")[0];
+                var wh = l.Split(":")[1];
+
+                var x = int.Parse(xy.Split(",")[0]);
+                var y = int.Parse(xy.Split(",")[1]);
+                var w = int.Parse(wh.Split("x")[0]);
+                var h = int.Parse(wh.Split("x")[1]);
+
+                for (int i = x; i < x + w; i++)
+                {
+                    for (int j = y; j < y + h; j++)
+                    {
+                        if (fabric[i, j] == null) fabric[i, j] = new HashSet<string>();
+                        fabric[i, j].Add(n);
+                    }
+                }
+            } while (true);
+
+            Dictionary<string, bool> all = new Dictionary<string, bool>();
+            for (int x = 0; x < 1000; x++)
+            {
+                for (int y = 0; y < 1000; y++)
+                {
+                    if (fabric[x, y] == null) continue;
+                    var fl = fabric[x, y];
+
+                    if (fl.Count == 1 && all.ContainsKey(fl.FirstOrDefault()) == false)
+                    {
+                        all.Add(fl.FirstOrDefault(), true);
+                    }
+
+                    if (fl.Count == 1) continue;
+
+                    foreach (var f in fl)
+                    {
+                        if (all.ContainsKey(f) == false) all.Add(f, false);
+                        else all[f] = false;
+                    }
+                }
+            }
+
+            Console.WriteLine(all.FirstOrDefault(a => a.Value == true));
+        }
+    }
+}

+ 8 - 0
D3.2/Properties/launchSettings.json

@@ -0,0 +1,8 @@
+{
+  "profiles": {
+    "D03.2": {
+      "commandName": "Project",
+      "commandLineArgs": "\"D:\\adv\\Adv2018\\D3.2\\input.txt\""
+    }
+  }
+}

+ 1305 - 0
D3.2/input.txt

@@ -0,0 +1,1305 @@
+#1 @ 108,350: 22x29
+#2 @ 370,638: 13x12
+#3 @ 242,156: 26x23
+#4 @ 638,540: 14x27
+#5 @ 8,793: 24x29
+#6 @ 158,828: 15x15
+#7 @ 103,549: 22x26
+#8 @ 942,637: 15x15
+#9 @ 405,628: 19x11
+#10 @ 419,259: 18x12
+#11 @ 698,565: 15x22
+#12 @ 150,478: 23x12
+#13 @ 383,112: 25x23
+#14 @ 675,306: 28x19
+#15 @ 110,919: 19x18
+#16 @ 514,568: 23x19
+#17 @ 748,481: 22x23
+#18 @ 383,79: 13x6
+#19 @ 727,848: 19x18
+#20 @ 165,463: 10x18
+#21 @ 108,559: 21x23
+#22 @ 576,345: 13x19
+#23 @ 617,575: 26x11
+#24 @ 914,319: 10x29
+#25 @ 110,600: 11x16
+#26 @ 780,154: 14x18
+#27 @ 620,756: 11x21
+#28 @ 162,843: 17x22
+#29 @ 485,231: 10x27
+#30 @ 646,443: 17x19
+#31 @ 512,520: 20x28
+#32 @ 0,896: 24x27
+#33 @ 428,689: 24x11
+#34 @ 7,827: 11x22
+#35 @ 341,149: 11x23
+#36 @ 460,480: 28x16
+#37 @ 795,226: 27x23
+#38 @ 805,595: 21x15
+#39 @ 803,235: 17x19
+#40 @ 528,104: 25x25
+#41 @ 761,616: 21x29
+#42 @ 140,673: 16x10
+#43 @ 424,75: 18x23
+#44 @ 568,279: 22x14
+#45 @ 917,645: 22x24
+#46 @ 357,702: 18x28
+#47 @ 388,952: 29x16
+#48 @ 352,737: 22x21
+#49 @ 365,731: 18x20
+#50 @ 664,614: 11x23
+#51 @ 632,549: 18x20
+#52 @ 756,61: 28x11
+#53 @ 706,283: 28x14
+#54 @ 900,635: 19x29
+#55 @ 118,925: 10x19
+#56 @ 634,729: 26x19
+#57 @ 940,102: 24x13
+#58 @ 562,223: 17x16
+#59 @ 177,233: 23x23
+#60 @ 654,600: 27x12
+#61 @ 469,357: 12x6
+#62 @ 3,481: 28x28
+#63 @ 346,210: 19x22
+#64 @ 157,973: 20x13
+#65 @ 159,281: 27x12
+#66 @ 135,817: 29x16
+#67 @ 76,209: 28x27
+#68 @ 802,587: 26x28
+#69 @ 39,276: 16x12
+#70 @ 258,749: 19x25
+#71 @ 23,820: 26x24
+#72 @ 173,99: 20x16
+#73 @ 365,125: 23x22
+#74 @ 135,897: 21x15
+#75 @ 380,342: 24x19
+#76 @ 106,833: 26x25
+#77 @ 25,576: 11x23
+#78 @ 343,585: 21x10
+#79 @ 394,771: 11x25
+#80 @ 110,83: 29x24
+#81 @ 420,79: 28x17
+#82 @ 805,276: 29x11
+#83 @ 710,294: 10x29
+#84 @ 107,194: 14x21
+#85 @ 738,695: 15x16
+#86 @ 180,15: 13x25
+#87 @ 105,718: 27x23
+#88 @ 949,501: 20x21
+#89 @ 335,922: 14x26
+#90 @ 56,564: 12x20
+#91 @ 391,358: 13x29
+#92 @ 86,131: 11x16
+#93 @ 249,528: 22x29
+#94 @ 449,620: 28x15
+#95 @ 274,745: 14x15
+#96 @ 518,550: 21x21
+#97 @ 763,909: 28x24
+#98 @ 809,939: 24x19
+#99 @ 148,444: 22x21
+#100 @ 967,901: 24x20
+#101 @ 289,559: 19x27
+#102 @ 894,639: 10x16
+#103 @ 758,45: 15x15
+#104 @ 572,462: 20x16
+#105 @ 254,803: 14x20
+#106 @ 771,850: 17x19
+#107 @ 131,784: 27x11
+#108 @ 779,102: 23x21
+#109 @ 582,722: 19x12
+#110 @ 810,93: 27x12
+#111 @ 346,322: 18x20
+#112 @ 86,101: 21x24
+#113 @ 117,921: 14x11
+#114 @ 49,598: 18x19
+#115 @ 687,969: 27x28
+#116 @ 294,597: 17x13
+#117 @ 64,115: 29x13
+#118 @ 360,971: 13x12
+#119 @ 465,354: 21x13
+#120 @ 853,410: 19x25
+#121 @ 669,843: 17x19
+#122 @ 712,745: 21x18
+#123 @ 839,363: 18x26
+#124 @ 412,73: 29x27
+#125 @ 692,962: 14x15
+#126 @ 66,827: 10x10
+#127 @ 265,96: 19x18
+#128 @ 387,163: 26x29
+#129 @ 362,384: 11x16
+#130 @ 902,407: 21x11
+#131 @ 333,580: 28x16
+#132 @ 794,106: 15x18
+#133 @ 441,602: 11x28
+#134 @ 412,369: 26x15
+#135 @ 441,293: 24x27
+#136 @ 235,469: 24x25
+#137 @ 72,113: 19x16
+#138 @ 425,242: 11x25
+#139 @ 14,908: 12x23
+#140 @ 969,150: 17x19
+#141 @ 847,861: 26x23
+#142 @ 915,204: 22x28
+#143 @ 559,647: 15x27
+#144 @ 561,338: 15x23
+#145 @ 667,616: 4x18
+#146 @ 267,351: 22x12
+#147 @ 610,684: 13x10
+#148 @ 885,970: 21x12
+#149 @ 165,838: 20x10
+#150 @ 70,650: 26x24
+#151 @ 965,143: 19x23
+#152 @ 422,427: 13x10
+#153 @ 200,556: 10x21
+#154 @ 903,14: 25x12
+#155 @ 193,913: 23x24
+#156 @ 649,713: 25x29
+#157 @ 103,841: 13x22
+#158 @ 573,486: 10x16
+#159 @ 465,383: 27x11
+#160 @ 629,548: 17x22
+#161 @ 969,580: 29x25
+#162 @ 198,223: 29x17
+#163 @ 604,157: 27x23
+#164 @ 452,381: 29x23
+#165 @ 117,14: 11x12
+#166 @ 965,140: 13x29
+#167 @ 337,198: 22x24
+#168 @ 667,743: 21x21
+#169 @ 89,138: 23x28
+#170 @ 455,903: 18x21
+#171 @ 60,466: 13x29
+#172 @ 907,786: 11x23
+#173 @ 933,455: 12x18
+#174 @ 961,207: 28x16
+#175 @ 779,679: 12x20
+#176 @ 323,151: 5x13
+#177 @ 633,556: 13x23
+#178 @ 348,74: 21x19
+#179 @ 886,684: 12x12
+#180 @ 694,192: 20x15
+#181 @ 343,376: 25x24
+#182 @ 373,0: 10x27
+#183 @ 157,480: 10x16
+#184 @ 694,184: 17x11
+#185 @ 206,222: 24x17
+#186 @ 716,524: 24x26
+#187 @ 301,750: 15x15
+#188 @ 426,13: 19x14
+#189 @ 506,540: 29x17
+#190 @ 607,980: 25x14
+#191 @ 782,219: 14x29
+#192 @ 342,157: 15x20
+#193 @ 259,739: 27x25
+#194 @ 698,744: 16x10
+#195 @ 521,507: 22x28
+#196 @ 817,90: 28x19
+#197 @ 796,268: 11x11
+#198 @ 261,99: 12x13
+#199 @ 972,469: 15x15
+#200 @ 833,445: 18x17
+#201 @ 181,911: 27x16
+#202 @ 898,330: 12x15
+#203 @ 265,179: 14x29
+#204 @ 782,647: 20x18
+#205 @ 189,122: 18x16
+#206 @ 142,533: 25x29
+#207 @ 734,313: 21x27
+#208 @ 776,66: 24x12
+#209 @ 860,853: 10x23
+#210 @ 669,699: 15x27
+#211 @ 971,161: 20x12
+#212 @ 509,169: 29x29
+#213 @ 786,82: 27x15
+#214 @ 906,716: 24x16
+#215 @ 19,823: 18x27
+#216 @ 673,960: 22x18
+#217 @ 927,264: 22x13
+#218 @ 133,321: 10x14
+#219 @ 839,844: 26x15
+#220 @ 334,586: 18x25
+#221 @ 725,872: 22x21
+#222 @ 719,674: 11x13
+#223 @ 134,846: 26x23
+#224 @ 57,384: 10x26
+#225 @ 590,131: 27x29
+#226 @ 756,271: 14x19
+#227 @ 576,452: 14x25
+#228 @ 760,673: 20x13
+#229 @ 444,350: 26x10
+#230 @ 730,37: 12x13
+#231 @ 746,844: 3x15
+#232 @ 767,538: 19x10
+#233 @ 747,295: 22x20
+#234 @ 54,919: 12x22
+#235 @ 257,215: 28x25
+#236 @ 799,83: 28x14
+#237 @ 505,856: 17x14
+#238 @ 570,679: 23x24
+#239 @ 42,71: 26x28
+#240 @ 607,596: 22x16
+#241 @ 24,805: 16x21
+#242 @ 624,864: 20x26
+#243 @ 359,309: 14x18
+#244 @ 788,636: 16x27
+#245 @ 471,537: 18x16
+#246 @ 119,450: 19x21
+#247 @ 807,130: 20x25
+#248 @ 213,637: 25x17
+#249 @ 240,410: 12x29
+#250 @ 929,359: 18x16
+#251 @ 371,945: 16x18
+#252 @ 840,733: 13x11
+#253 @ 273,75: 28x26
+#254 @ 549,445: 27x10
+#255 @ 602,103: 18x20
+#256 @ 298,971: 29x25
+#257 @ 890,244: 12x25
+#258 @ 525,16: 12x14
+#259 @ 238,528: 16x19
+#260 @ 136,632: 16x17
+#261 @ 568,165: 11x12
+#262 @ 210,901: 24x27
+#263 @ 900,327: 17x23
+#264 @ 517,659: 12x19
+#265 @ 588,103: 23x26
+#266 @ 459,508: 23x28
+#267 @ 675,132: 15x10
+#268 @ 629,377: 11x23
+#269 @ 349,25: 15x23
+#270 @ 214,627: 14x19
+#271 @ 211,631: 24x25
+#272 @ 662,248: 13x10
+#273 @ 939,439: 20x10
+#274 @ 271,90: 20x25
+#275 @ 257,872: 19x16
+#276 @ 330,355: 23x14
+#277 @ 95,684: 25x28
+#278 @ 907,786: 21x17
+#279 @ 272,98: 7x10
+#280 @ 286,525: 20x27
+#281 @ 66,229: 13x15
+#282 @ 449,85: 25x26
+#283 @ 522,982: 16x17
+#284 @ 119,294: 25x18
+#285 @ 183,132: 15x26
+#286 @ 203,419: 21x11
+#287 @ 505,681: 12x28
+#288 @ 89,716: 28x22
+#289 @ 281,62: 25x21
+#290 @ 717,686: 19x22
+#291 @ 610,143: 11x29
+#292 @ 833,920: 11x27
+#293 @ 647,132: 16x15
+#294 @ 503,272: 14x21
+#295 @ 917,221: 15x27
+#296 @ 666,698: 24x25
+#297 @ 908,710: 18x16
+#298 @ 914,562: 25x24
+#299 @ 136,538: 14x22
+#300 @ 53,872: 21x22
+#301 @ 140,644: 28x23
+#302 @ 681,24: 24x29
+#303 @ 727,67: 13x19
+#304 @ 600,166: 12x16
+#305 @ 118,329: 19x23
+#306 @ 632,897: 10x28
+#307 @ 533,258: 14x27
+#308 @ 371,22: 24x16
+#309 @ 322,395: 13x22
+#310 @ 661,464: 25x14
+#311 @ 52,561: 17x24
+#312 @ 83,197: 10x15
+#313 @ 682,804: 22x12
+#314 @ 366,555: 22x27
+#315 @ 169,675: 13x24
+#316 @ 89,186: 23x21
+#317 @ 500,308: 13x20
+#318 @ 149,961: 28x21
+#319 @ 238,672: 15x27
+#320 @ 458,432: 25x15
+#321 @ 666,843: 12x25
+#322 @ 600,411: 16x18
+#323 @ 570,440: 26x28
+#324 @ 13,44: 18x27
+#325 @ 628,35: 13x20
+#326 @ 423,725: 24x13
+#327 @ 445,147: 15x24
+#328 @ 650,295: 17x17
+#329 @ 941,862: 22x26
+#330 @ 313,778: 10x18
+#331 @ 488,212: 23x20
+#332 @ 773,679: 16x28
+#333 @ 964,259: 10x19
+#334 @ 54,282: 21x16
+#335 @ 24,810: 28x26
+#336 @ 135,511: 10x15
+#337 @ 362,618: 5x21
+#338 @ 673,630: 17x17
+#339 @ 461,852: 20x11
+#340 @ 353,86: 13x10
+#341 @ 128,838: 17x16
+#342 @ 900,621: 28x23
+#343 @ 298,485: 20x15
+#344 @ 821,341: 24x28
+#345 @ 135,21: 14x25
+#346 @ 555,328: 29x16
+#347 @ 260,550: 28x21
+#348 @ 253,858: 15x22
+#349 @ 652,421: 11x19
+#350 @ 708,258: 18x10
+#351 @ 744,640: 21x20
+#352 @ 756,723: 21x21
+#353 @ 579,446: 13x15
+#354 @ 467,390: 18x28
+#355 @ 15,420: 29x19
+#356 @ 657,874: 28x27
+#357 @ 641,967: 16x23
+#358 @ 747,683: 17x12
+#359 @ 557,586: 10x26
+#360 @ 315,235: 29x19
+#361 @ 954,164: 22x23
+#362 @ 83,196: 10x25
+#363 @ 371,316: 11x24
+#364 @ 437,914: 25x27
+#365 @ 443,844: 12x16
+#366 @ 36,388: 16x29
+#367 @ 332,328: 18x12
+#368 @ 363,532: 11x16
+#369 @ 217,198: 17x29
+#370 @ 721,712: 25x17
+#371 @ 507,847: 20x14
+#372 @ 873,28: 11x21
+#373 @ 280,344: 20x5
+#374 @ 846,28: 18x18
+#375 @ 144,627: 12x26
+#376 @ 273,349: 15x25
+#377 @ 387,230: 21x24
+#378 @ 963,641: 26x26
+#379 @ 908,235: 24x11
+#380 @ 420,386: 28x19
+#381 @ 570,637: 21x29
+#382 @ 19,923: 14x27
+#383 @ 758,357: 27x16
+#384 @ 232,465: 11x18
+#385 @ 99,542: 16x28
+#386 @ 334,327: 11x19
+#387 @ 349,147: 10x25
+#388 @ 672,893: 12x26
+#389 @ 347,544: 26x27
+#390 @ 944,295: 18x24
+#391 @ 967,825: 13x10
+#392 @ 185,36: 17x16
+#393 @ 407,7: 25x18
+#394 @ 610,911: 21x23
+#395 @ 419,664: 16x16
+#396 @ 773,254: 13x24
+#397 @ 572,828: 25x20
+#398 @ 107,716: 20x20
+#399 @ 702,408: 13x10
+#400 @ 321,149: 11x19
+#401 @ 663,601: 11x29
+#402 @ 206,923: 19x17
+#403 @ 618,873: 15x13
+#404 @ 108,900: 16x21
+#405 @ 162,620: 16x29
+#406 @ 908,814: 18x28
+#407 @ 30,666: 10x15
+#408 @ 703,619: 20x12
+#409 @ 291,823: 25x25
+#410 @ 748,402: 28x10
+#411 @ 283,486: 16x18
+#412 @ 908,182: 16x16
+#413 @ 553,754: 19x24
+#414 @ 627,500: 13x16
+#415 @ 452,314: 25x25
+#416 @ 404,625: 17x28
+#417 @ 320,68: 28x26
+#418 @ 742,862: 13x19
+#419 @ 698,249: 25x16
+#420 @ 681,736: 16x12
+#421 @ 604,806: 18x15
+#422 @ 123,905: 27x19
+#423 @ 189,606: 17x26
+#424 @ 10,616: 27x16
+#425 @ 160,12: 19x18
+#426 @ 242,314: 18x29
+#427 @ 508,440: 25x10
+#428 @ 283,305: 9x4
+#429 @ 314,249: 27x22
+#430 @ 588,792: 17x23
+#431 @ 310,616: 26x12
+#432 @ 355,105: 16x23
+#433 @ 926,217: 14x16
+#434 @ 907,167: 16x10
+#435 @ 280,783: 17x17
+#436 @ 247,915: 19x25
+#437 @ 526,248: 21x14
+#438 @ 660,437: 23x19
+#439 @ 577,193: 26x25
+#440 @ 786,805: 28x16
+#441 @ 431,155: 24x15
+#442 @ 105,443: 9x5
+#443 @ 746,654: 23x29
+#444 @ 147,78: 21x19
+#445 @ 663,804: 22x15
+#446 @ 99,441: 19x10
+#447 @ 582,284: 25x28
+#448 @ 577,640: 7x20
+#449 @ 865,388: 11x23
+#450 @ 149,336: 20x11
+#451 @ 523,552: 12x12
+#452 @ 726,752: 12x28
+#453 @ 463,460: 11x13
+#454 @ 364,960: 13x29
+#455 @ 101,149: 17x11
+#456 @ 244,9: 19x22
+#457 @ 106,868: 26x29
+#458 @ 722,844: 16x18
+#459 @ 162,964: 24x21
+#460 @ 308,451: 18x25
+#461 @ 275,633: 27x10
+#462 @ 439,702: 24x18
+#463 @ 173,791: 19x29
+#464 @ 95,343: 12x19
+#465 @ 768,812: 27x23
+#466 @ 827,331: 17x22
+#467 @ 623,188: 26x11
+#468 @ 19,949: 19x23
+#469 @ 663,684: 26x10
+#470 @ 153,88: 24x20
+#471 @ 778,828: 26x24
+#472 @ 443,652: 21x15
+#473 @ 720,770: 15x6
+#474 @ 275,549: 22x23
+#475 @ 483,103: 27x16
+#476 @ 670,462: 13x11
+#477 @ 146,873: 26x27
+#478 @ 540,111: 18x17
+#479 @ 151,629: 25x11
+#480 @ 417,254: 22x29
+#481 @ 809,808: 13x13
+#482 @ 673,797: 13x23
+#483 @ 354,71: 17x12
+#484 @ 55,877: 11x21
+#485 @ 807,887: 14x14
+#486 @ 729,26: 19x27
+#487 @ 483,521: 28x22
+#488 @ 715,518: 14x14
+#489 @ 807,96: 12x14
+#490 @ 95,914: 28x27
+#491 @ 228,326: 26x27
+#492 @ 945,714: 25x28
+#493 @ 535,974: 11x16
+#494 @ 490,288: 23x26
+#495 @ 266,906: 11x19
+#496 @ 363,254: 25x13
+#497 @ 469,382: 23x14
+#498 @ 697,802: 27x18
+#499 @ 458,779: 27x27
+#500 @ 505,80: 25x13
+#501 @ 877,25: 22x11
+#502 @ 295,834: 11x12
+#503 @ 830,336: 16x14
+#504 @ 527,73: 20x16
+#505 @ 661,201: 24x19
+#506 @ 129,450: 25x13
+#507 @ 632,188: 14x12
+#508 @ 952,443: 18x24
+#509 @ 927,204: 13x29
+#510 @ 420,386: 27x12
+#511 @ 369,103: 25x26
+#512 @ 417,77: 14x10
+#513 @ 552,84: 19x29
+#514 @ 488,951: 28x14
+#515 @ 579,476: 20x11
+#516 @ 423,237: 11x21
+#517 @ 648,901: 28x24
+#518 @ 795,888: 20x13
+#519 @ 593,13: 6x4
+#520 @ 886,99: 18x16
+#521 @ 522,517: 28x29
+#522 @ 767,477: 11x21
+#523 @ 271,239: 21x14
+#524 @ 30,842: 24x21
+#525 @ 924,242: 13x7
+#526 @ 876,28: 22x23
+#527 @ 508,860: 22x27
+#528 @ 183,552: 20x20
+#529 @ 590,4: 13x17
+#530 @ 760,897: 19x19
+#531 @ 779,106: 28x16
+#532 @ 245,12: 15x25
+#533 @ 938,462: 26x17
+#534 @ 513,7: 18x16
+#535 @ 195,337: 13x28
+#536 @ 228,799: 28x11
+#537 @ 552,554: 13x12
+#538 @ 390,85: 26x12
+#539 @ 415,247: 15x14
+#540 @ 173,810: 21x11
+#541 @ 970,829: 12x11
+#542 @ 240,430: 11x21
+#543 @ 195,583: 20x18
+#544 @ 535,409: 15x11
+#545 @ 240,195: 28x14
+#546 @ 36,855: 23x17
+#547 @ 424,375: 19x15
+#548 @ 428,884: 29x16
+#549 @ 19,186: 23x27
+#550 @ 490,212: 24x11
+#551 @ 662,628: 14x18
+#552 @ 27,602: 13x24
+#553 @ 911,52: 26x15
+#554 @ 448,638: 23x20
+#555 @ 69,384: 29x21
+#556 @ 349,575: 20x23
+#557 @ 665,538: 28x22
+#558 @ 100,906: 29x18
+#559 @ 118,742: 16x13
+#560 @ 299,731: 23x29
+#561 @ 29,817: 14x12
+#562 @ 770,109: 23x10
+#563 @ 924,225: 15x13
+#564 @ 979,590: 14x24
+#565 @ 616,275: 23x15
+#566 @ 393,961: 13x10
+#567 @ 35,809: 19x13
+#568 @ 121,832: 11x18
+#569 @ 100,916: 27x11
+#570 @ 649,866: 23x11
+#571 @ 778,224: 20x26
+#572 @ 55,638: 24x16
+#573 @ 110,600: 11x18
+#574 @ 289,654: 25x12
+#575 @ 45,665: 28x15
+#576 @ 466,351: 19x26
+#577 @ 722,123: 14x13
+#578 @ 508,848: 25x18
+#579 @ 802,80: 15x24
+#580 @ 478,118: 26x23
+#581 @ 147,432: 28x22
+#582 @ 920,383: 29x27
+#583 @ 414,788: 28x12
+#584 @ 190,588: 15x11
+#585 @ 117,674: 23x22
+#586 @ 203,953: 18x19
+#587 @ 0,605: 18x29
+#588 @ 711,347: 29x18
+#589 @ 117,214: 12x22
+#590 @ 547,112: 22x17
+#591 @ 243,154: 14x22
+#592 @ 628,943: 10x17
+#593 @ 555,738: 21x23
+#594 @ 276,504: 27x17
+#595 @ 396,352: 23x29
+#596 @ 454,145: 17x27
+#597 @ 738,718: 22x16
+#598 @ 903,21: 14x10
+#599 @ 400,768: 17x26
+#600 @ 712,92: 10x11
+#601 @ 784,698: 14x29
+#602 @ 586,654: 18x18
+#603 @ 512,595: 27x25
+#604 @ 573,439: 15x24
+#605 @ 457,488: 18x23
+#606 @ 628,708: 17x23
+#607 @ 246,707: 20x13
+#608 @ 555,85: 28x19
+#609 @ 812,344: 11x4
+#610 @ 825,437: 15x29
+#611 @ 131,283: 18x22
+#612 @ 496,287: 27x18
+#613 @ 385,397: 14x16
+#614 @ 776,944: 12x15
+#615 @ 618,895: 12x26
+#616 @ 289,518: 26x24
+#617 @ 944,252: 24x26
+#618 @ 182,102: 17x10
+#619 @ 729,540: 26x12
+#620 @ 262,899: 25x15
+#621 @ 330,366: 17x22
+#622 @ 471,908: 24x19
+#623 @ 401,229: 13x19
+#624 @ 864,145: 26x14
+#625 @ 357,976: 24x22
+#626 @ 698,357: 22x21
+#627 @ 893,659: 29x10
+#628 @ 111,320: 11x23
+#629 @ 956,256: 16x19
+#630 @ 620,269: 15x10
+#631 @ 217,409: 16x11
+#632 @ 29,693: 23x20
+#633 @ 297,925: 28x19
+#634 @ 257,327: 26x25
+#635 @ 942,495: 14x29
+#636 @ 683,761: 21x19
+#637 @ 525,547: 22x21
+#638 @ 93,254: 27x11
+#639 @ 150,815: 26x22
+#640 @ 193,817: 23x20
+#641 @ 116,310: 27x22
+#642 @ 60,611: 12x26
+#643 @ 255,901: 14x18
+#644 @ 263,664: 10x12
+#645 @ 831,802: 28x15
+#646 @ 810,407: 25x14
+#647 @ 177,157: 14x28
+#648 @ 928,646: 27x10
+#649 @ 193,228: 20x25
+#650 @ 289,601: 28x27
+#651 @ 785,638: 27x24
+#652 @ 788,206: 22x10
+#653 @ 3,92: 24x28
+#654 @ 935,755: 29x11
+#655 @ 446,464: 22x21
+#656 @ 114,812: 28x29
+#657 @ 309,453: 24x14
+#658 @ 572,365: 14x22
+#659 @ 930,882: 29x21
+#660 @ 752,121: 29x23
+#661 @ 164,686: 13x26
+#662 @ 244,565: 17x18
+#663 @ 691,860: 17x20
+#664 @ 628,198: 13x4
+#665 @ 203,819: 11x13
+#666 @ 600,425: 14x13
+#667 @ 611,605: 20x11
+#668 @ 902,93: 24x17
+#669 @ 347,249: 18x19
+#670 @ 333,956: 29x15
+#671 @ 106,0: 29x16
+#672 @ 676,137: 19x24
+#673 @ 545,355: 28x15
+#674 @ 234,620: 25x28
+#675 @ 884,413: 10x3
+#676 @ 854,407: 27x20
+#677 @ 113,853: 12x25
+#678 @ 857,130: 19x16
+#679 @ 460,154: 25x28
+#680 @ 732,125: 16x18
+#681 @ 840,539: 24x17
+#682 @ 124,405: 11x12
+#683 @ 618,691: 15x16
+#684 @ 330,563: 29x24
+#685 @ 511,859: 23x12
+#686 @ 911,781: 21x17
+#687 @ 527,69: 10x29
+#688 @ 825,578: 21x12
+#689 @ 965,175: 22x25
+#690 @ 230,188: 17x24
+#691 @ 462,880: 27x15
+#692 @ 75,128: 21x16
+#693 @ 350,582: 21x18
+#694 @ 377,72: 28x22
+#695 @ 882,836: 17x19
+#696 @ 25,419: 17x26
+#697 @ 987,886: 12x23
+#698 @ 918,415: 16x18
+#699 @ 793,344: 29x25
+#700 @ 380,609: 12x10
+#701 @ 241,428: 29x18
+#702 @ 363,15: 11x20
+#703 @ 438,552: 21x10
+#704 @ 582,144: 21x19
+#705 @ 192,815: 19x13
+#706 @ 750,625: 18x22
+#707 @ 326,980: 25x13
+#708 @ 613,480: 20x14
+#709 @ 913,722: 16x12
+#710 @ 405,254: 23x20
+#711 @ 423,380: 10x27
+#712 @ 641,578: 16x15
+#713 @ 639,967: 29x17
+#714 @ 903,184: 10x22
+#715 @ 569,258: 13x25
+#716 @ 839,319: 10x29
+#717 @ 67,63: 22x12
+#718 @ 987,905: 12x21
+#719 @ 619,196: 26x13
+#720 @ 290,637: 10x24
+#721 @ 197,905: 14x28
+#722 @ 705,615: 13x26
+#723 @ 677,527: 16x18
+#724 @ 605,204: 21x25
+#725 @ 615,210: 11x24
+#726 @ 582,436: 13x24
+#727 @ 314,50: 20x22
+#728 @ 207,118: 29x26
+#729 @ 764,638: 27x11
+#730 @ 320,336: 26x24
+#731 @ 911,633: 28x14
+#732 @ 385,556: 27x24
+#733 @ 447,884: 12x14
+#734 @ 700,74: 26x28
+#735 @ 13,552: 23x28
+#736 @ 236,580: 11x23
+#737 @ 122,14: 28x14
+#738 @ 289,468: 16x13
+#739 @ 170,28: 23x18
+#740 @ 924,721: 12x13
+#741 @ 40,740: 20x27
+#742 @ 424,283: 18x28
+#743 @ 584,102: 27x11
+#744 @ 511,485: 16x25
+#745 @ 569,98: 28x18
+#746 @ 480,948: 20x12
+#747 @ 412,392: 11x17
+#748 @ 751,914: 24x10
+#749 @ 21,959: 13x11
+#750 @ 266,49: 13x23
+#751 @ 890,625: 10x22
+#752 @ 973,186: 14x15
+#753 @ 21,594: 15x24
+#754 @ 115,839: 5x6
+#755 @ 449,552: 12x29
+#756 @ 475,747: 23x29
+#757 @ 567,559: 28x20
+#758 @ 836,529: 25x27
+#759 @ 280,302: 29x11
+#760 @ 400,637: 26x22
+#761 @ 389,336: 20x29
+#762 @ 93,745: 26x27
+#763 @ 70,821: 11x29
+#764 @ 36,794: 10x24
+#765 @ 623,189: 20x17
+#766 @ 720,620: 16x29
+#767 @ 695,798: 25x12
+#768 @ 120,381: 28x10
+#769 @ 667,840: 29x13
+#770 @ 13,31: 15x22
+#771 @ 667,621: 14x22
+#772 @ 819,580: 18x19
+#773 @ 165,434: 25x28
+#774 @ 387,831: 25x26
+#775 @ 267,189: 11x19
+#776 @ 515,161: 25x24
+#777 @ 497,941: 13x28
+#778 @ 810,352: 14x21
+#779 @ 29,864: 17x15
+#780 @ 339,318: 14x24
+#781 @ 969,649: 16x4
+#782 @ 429,788: 11x29
+#783 @ 346,69: 18x29
+#784 @ 930,705: 28x24
+#785 @ 705,770: 26x23
+#786 @ 721,599: 10x15
+#787 @ 467,212: 28x12
+#788 @ 444,85: 15x24
+#789 @ 614,146: 3x19
+#790 @ 190,448: 16x12
+#791 @ 5,99: 13x7
+#792 @ 23,668: 10x25
+#793 @ 725,265: 10x18
+#794 @ 667,321: 27x12
+#795 @ 0,774: 28x26
+#796 @ 812,15: 14x26
+#797 @ 947,480: 15x17
+#798 @ 599,676: 21x22
+#799 @ 181,19: 10x20
+#800 @ 955,162: 20x17
+#801 @ 515,865: 20x13
+#802 @ 13,812: 26x28
+#803 @ 553,841: 27x28
+#804 @ 80,62: 21x11
+#805 @ 189,430: 22x25
+#806 @ 605,191: 19x12
+#807 @ 65,31: 26x16
+#808 @ 8,410: 27x16
+#809 @ 860,845: 27x16
+#810 @ 358,968: 17x15
+#811 @ 448,867: 17x11
+#812 @ 862,678: 24x20
+#813 @ 272,665: 20x14
+#814 @ 427,95: 22x11
+#815 @ 703,285: 14x14
+#816 @ 756,124: 23x24
+#817 @ 396,69: 27x18
+#818 @ 619,483: 14x23
+#819 @ 671,35: 21x23
+#820 @ 234,717: 24x16
+#821 @ 269,97: 24x16
+#822 @ 677,882: 23x27
+#823 @ 852,343: 16x25
+#824 @ 99,902: 29x10
+#825 @ 345,542: 28x23
+#826 @ 572,256: 11x26
+#827 @ 576,421: 21x28
+#828 @ 893,727: 21x10
+#829 @ 47,381: 15x12
+#830 @ 887,955: 12x16
+#831 @ 637,498: 22x21
+#832 @ 303,530: 21x11
+#833 @ 727,855: 25x14
+#834 @ 21,148: 12x16
+#835 @ 537,391: 18x25
+#836 @ 498,670: 16x12
+#837 @ 944,715: 20x15
+#838 @ 944,696: 24x26
+#839 @ 907,202: 15x10
+#840 @ 87,68: 22x13
+#841 @ 842,789: 25x17
+#842 @ 187,187: 21x18
+#843 @ 679,540: 28x12
+#844 @ 877,681: 24x11
+#845 @ 933,43: 15x18
+#846 @ 979,217: 20x24
+#847 @ 596,219: 23x21
+#848 @ 892,403: 29x15
+#849 @ 411,383: 10x21
+#850 @ 368,263: 11x19
+#851 @ 65,407: 12x23
+#852 @ 592,666: 27x16
+#853 @ 253,77: 29x22
+#854 @ 133,667: 14x20
+#855 @ 439,683: 11x24
+#856 @ 786,881: 11x18
+#857 @ 544,114: 19x19
+#858 @ 88,355: 24x10
+#859 @ 148,277: 14x23
+#860 @ 83,553: 10x22
+#861 @ 534,922: 27x20
+#862 @ 508,22: 27x17
+#863 @ 700,398: 12x28
+#864 @ 42,288: 16x16
+#865 @ 111,303: 15x19
+#866 @ 615,652: 14x28
+#867 @ 243,650: 14x26
+#868 @ 142,551: 12x29
+#869 @ 989,909: 4x6
+#870 @ 831,331: 13x17
+#871 @ 53,731: 26x27
+#872 @ 824,453: 14x17
+#873 @ 253,110: 10x27
+#874 @ 226,913: 15x23
+#875 @ 745,790: 13x20
+#876 @ 310,928: 25x20
+#877 @ 307,354: 10x14
+#878 @ 466,734: 19x23
+#879 @ 159,966: 21x26
+#880 @ 898,55: 23x10
+#881 @ 744,392: 11x24
+#882 @ 950,95: 18x15
+#883 @ 886,824: 29x29
+#884 @ 137,689: 19x23
+#885 @ 326,390: 12x20
+#886 @ 39,424: 27x15
+#887 @ 606,682: 13x16
+#888 @ 427,244: 29x21
+#889 @ 214,931: 13x16
+#890 @ 493,442: 26x13
+#891 @ 718,768: 21x11
+#892 @ 186,199: 21x24
+#893 @ 88,560: 29x13
+#894 @ 89,188: 13x23
+#895 @ 801,909: 23x11
+#896 @ 644,975: 28x16
+#897 @ 163,423: 15x27
+#898 @ 929,640: 13x16
+#899 @ 135,338: 18x10
+#900 @ 822,573: 12x23
+#901 @ 800,364: 19x17
+#902 @ 82,108: 25x25
+#903 @ 795,916: 24x23
+#904 @ 255,548: 12x13
+#905 @ 124,835: 25x16
+#906 @ 624,953: 20x22
+#907 @ 47,837: 13x25
+#908 @ 922,239: 18x18
+#909 @ 346,44: 10x14
+#910 @ 445,169: 21x19
+#911 @ 833,568: 23x23
+#912 @ 660,608: 17x21
+#913 @ 105,554: 15x16
+#914 @ 801,16: 27x26
+#915 @ 750,763: 21x25
+#916 @ 677,280: 26x26
+#917 @ 169,439: 29x23
+#918 @ 380,595: 19x28
+#919 @ 808,340: 20x22
+#920 @ 268,556: 16x17
+#921 @ 626,771: 23x27
+#922 @ 111,619: 17x13
+#923 @ 578,678: 11x24
+#924 @ 611,387: 16x14
+#925 @ 359,615: 14x29
+#926 @ 911,357: 28x21
+#927 @ 958,761: 12x11
+#928 @ 956,302: 19x12
+#929 @ 908,146: 20x26
+#930 @ 588,358: 18x17
+#931 @ 645,234: 21x18
+#932 @ 561,432: 12x25
+#933 @ 278,342: 26x10
+#934 @ 360,940: 19x12
+#935 @ 495,293: 16x14
+#936 @ 714,728: 21x24
+#937 @ 68,651: 21x25
+#938 @ 290,743: 26x18
+#939 @ 355,874: 11x25
+#940 @ 491,754: 16x24
+#941 @ 278,596: 19x12
+#942 @ 782,157: 20x16
+#943 @ 118,468: 12x23
+#944 @ 279,783: 10x29
+#945 @ 929,858: 25x19
+#946 @ 626,971: 21x13
+#947 @ 713,663: 11x28
+#948 @ 940,493: 25x25
+#949 @ 458,869: 11x12
+#950 @ 730,318: 28x20
+#951 @ 957,904: 29x28
+#952 @ 522,693: 28x27
+#953 @ 606,558: 14x20
+#954 @ 43,788: 12x21
+#955 @ 554,541: 28x27
+#956 @ 259,118: 11x26
+#957 @ 491,757: 15x10
+#958 @ 429,360: 19x13
+#959 @ 560,721: 18x26
+#960 @ 881,31: 11x15
+#961 @ 110,339: 24x29
+#962 @ 359,205: 25x25
+#963 @ 926,35: 22x24
+#964 @ 892,550: 24x20
+#965 @ 657,242: 25x21
+#966 @ 413,255: 22x21
+#967 @ 673,706: 12x16
+#968 @ 431,306: 13x27
+#969 @ 105,570: 18x11
+#970 @ 912,168: 12x27
+#971 @ 157,911: 23x23
+#972 @ 647,398: 14x29
+#973 @ 676,515: 14x28
+#974 @ 879,778: 24x13
+#975 @ 129,524: 24x29
+#976 @ 239,560: 16x22
+#977 @ 894,407: 10x18
+#978 @ 539,892: 26x19
+#979 @ 46,930: 22x23
+#980 @ 893,152: 16x17
+#981 @ 279,191: 21x10
+#982 @ 764,368: 26x11
+#983 @ 138,81: 25x22
+#984 @ 672,207: 19x18
+#985 @ 21,471: 26x13
+#986 @ 863,784: 19x25
+#987 @ 754,800: 15x19
+#988 @ 170,292: 15x27
+#989 @ 472,45: 10x16
+#990 @ 160,570: 26x17
+#991 @ 3,567: 22x28
+#992 @ 378,134: 21x13
+#993 @ 724,612: 10x15
+#994 @ 21,193: 20x19
+#995 @ 861,849: 14x12
+#996 @ 507,666: 18x10
+#997 @ 920,169: 21x16
+#998 @ 851,217: 12x27
+#999 @ 356,888: 26x27
+#1000 @ 264,513: 15x12
+#1001 @ 975,903: 10x14
+#1002 @ 665,838: 15x25
+#1003 @ 582,732: 29x11
+#1004 @ 246,413: 20x25
+#1005 @ 862,447: 17x22
+#1006 @ 795,939: 18x18
+#1007 @ 317,650: 15x12
+#1008 @ 821,123: 13x10
+#1009 @ 448,890: 20x15
+#1010 @ 202,20: 13x18
+#1011 @ 706,561: 15x11
+#1012 @ 891,480: 16x21
+#1013 @ 82,540: 24x18
+#1014 @ 845,32: 11x13
+#1015 @ 184,198: 12x14
+#1016 @ 98,141: 16x11
+#1017 @ 282,331: 20x28
+#1018 @ 760,273: 3x7
+#1019 @ 776,848: 14x15
+#1020 @ 443,285: 20x23
+#1021 @ 518,405: 29x22
+#1022 @ 22,139: 27x14
+#1023 @ 260,558: 29x11
+#1024 @ 924,369: 16x16
+#1025 @ 517,383: 13x12
+#1026 @ 461,443: 14x18
+#1027 @ 526,19: 17x10
+#1028 @ 760,904: 17x22
+#1029 @ 702,241: 20x19
+#1030 @ 763,250: 22x28
+#1031 @ 408,86: 12x19
+#1032 @ 714,493: 17x26
+#1033 @ 61,60: 22x27
+#1034 @ 878,479: 18x14
+#1035 @ 422,602: 22x22
+#1036 @ 307,527: 27x12
+#1037 @ 100,725: 29x17
+#1038 @ 241,207: 17x12
+#1039 @ 156,826: 22x22
+#1040 @ 210,22: 27x28
+#1041 @ 760,280: 28x25
+#1042 @ 112,833: 13x19
+#1043 @ 770,622: 21x11
+#1044 @ 229,881: 24x10
+#1045 @ 16,808: 20x19
+#1046 @ 183,583: 14x28
+#1047 @ 181,106: 17x25
+#1048 @ 580,65: 26x22
+#1049 @ 428,915: 27x13
+#1050 @ 300,534: 26x14
+#1051 @ 810,899: 23x11
+#1052 @ 672,627: 20x10
+#1053 @ 153,52: 11x28
+#1054 @ 610,10: 23x10
+#1055 @ 379,192: 26x22
+#1056 @ 161,743: 14x21
+#1057 @ 250,98: 23x20
+#1058 @ 46,487: 19x18
+#1059 @ 628,180: 17x16
+#1060 @ 54,761: 24x14
+#1061 @ 412,600: 21x13
+#1062 @ 17,910: 11x23
+#1063 @ 841,649: 21x22
+#1064 @ 110,310: 16x27
+#1065 @ 833,528: 15x11
+#1066 @ 98,862: 27x12
+#1067 @ 88,838: 28x19
+#1068 @ 272,464: 29x25
+#1069 @ 917,666: 29x20
+#1070 @ 222,127: 10x27
+#1071 @ 449,466: 23x16
+#1072 @ 258,331: 13x23
+#1073 @ 476,491: 18x11
+#1074 @ 390,75: 15x29
+#1075 @ 217,863: 17x24
+#1076 @ 334,227: 18x29
+#1077 @ 437,723: 11x15
+#1078 @ 662,846: 18x12
+#1079 @ 384,394: 24x27
+#1080 @ 675,965: 16x6
+#1081 @ 700,687: 16x29
+#1082 @ 443,859: 22x27
+#1083 @ 245,327: 19x24
+#1084 @ 676,807: 28x27
+#1085 @ 846,224: 14x21
+#1086 @ 58,744: 14x19
+#1087 @ 680,543: 23x20
+#1088 @ 790,267: 16x14
+#1089 @ 447,217: 27x26
+#1090 @ 140,961: 29x18
+#1091 @ 53,373: 24x12
+#1092 @ 549,222: 17x12
+#1093 @ 839,926: 22x14
+#1094 @ 21,690: 22x19
+#1095 @ 377,157: 16x13
+#1096 @ 664,637: 21x10
+#1097 @ 355,965: 20x12
+#1098 @ 949,474: 14x26
+#1099 @ 161,850: 17x25
+#1100 @ 104,408: 21x20
+#1101 @ 526,553: 20x19
+#1102 @ 126,527: 18x24
+#1103 @ 308,346: 28x21
+#1104 @ 808,406: 11x25
+#1105 @ 516,80: 14x29
+#1106 @ 767,40: 16x28
+#1107 @ 2,828: 10x27
+#1108 @ 317,655: 27x10
+#1109 @ 877,287: 15x16
+#1110 @ 133,443: 28x24
+#1111 @ 141,758: 28x28
+#1112 @ 1,105: 16x18
+#1113 @ 100,915: 14x17
+#1114 @ 544,666: 26x14
+#1115 @ 167,75: 22x17
+#1116 @ 322,922: 19x19
+#1117 @ 725,844: 13x29
+#1118 @ 610,217: 18x16
+#1119 @ 397,97: 17x15
+#1120 @ 68,52: 21x24
+#1121 @ 565,338: 12x10
+#1122 @ 672,951: 11x24
+#1123 @ 561,448: 13x16
+#1124 @ 785,858: 14x23
+#1125 @ 650,828: 15x21
+#1126 @ 442,693: 16x15
+#1127 @ 612,673: 13x19
+#1128 @ 330,215: 28x18
+#1129 @ 841,732: 23x23
+#1130 @ 200,433: 11x12
+#1131 @ 507,277: 23x27
+#1132 @ 259,917: 20x11
+#1133 @ 150,12: 11x26
+#1134 @ 112,628: 26x17
+#1135 @ 263,894: 25x13
+#1136 @ 332,251: 29x16
+#1137 @ 134,546: 22x11
+#1138 @ 808,338: 23x17
+#1139 @ 610,8: 25x23
+#1140 @ 547,908: 22x17
+#1141 @ 731,243: 28x25
+#1142 @ 558,550: 21x25
+#1143 @ 833,443: 15x28
+#1144 @ 290,823: 14x28
+#1145 @ 886,724: 12x29
+#1146 @ 219,214: 13x14
+#1147 @ 397,845: 21x18
+#1148 @ 153,639: 10x23
+#1149 @ 396,833: 13x20
+#1150 @ 773,136: 17x16
+#1151 @ 523,89: 11x23
+#1152 @ 48,692: 12x24
+#1153 @ 942,871: 20x18
+#1154 @ 74,296: 24x28
+#1155 @ 10,859: 23x16
+#1156 @ 155,478: 17x24
+#1157 @ 151,954: 18x19
+#1158 @ 846,525: 25x28
+#1159 @ 277,194: 13x10
+#1160 @ 458,935: 25x15
+#1161 @ 263,235: 23x28
+#1162 @ 262,48: 19x21
+#1163 @ 499,388: 22x29
+#1164 @ 760,776: 11x27
+#1165 @ 196,628: 19x28
+#1166 @ 126,200: 10x11
+#1167 @ 632,890: 14x25
+#1168 @ 868,275: 14x26
+#1169 @ 90,540: 20x28
+#1170 @ 117,526: 12x16
+#1171 @ 276,652: 17x14
+#1172 @ 828,206: 16x24
+#1173 @ 705,283: 12x28
+#1174 @ 478,770: 13x23
+#1175 @ 838,393: 29x20
+#1176 @ 911,791: 16x15
+#1177 @ 304,388: 12x20
+#1178 @ 560,808: 25x24
+#1179 @ 213,669: 28x14
+#1180 @ 130,842: 7x5
+#1181 @ 938,447: 15x11
+#1182 @ 116,864: 10x12
+#1183 @ 234,33: 24x14
+#1184 @ 392,850: 10x10
+#1185 @ 952,153: 21x26
+#1186 @ 884,318: 28x13
+#1187 @ 413,418: 14x20
+#1188 @ 203,908: 12x22
+#1189 @ 265,108: 19x25
+#1190 @ 737,842: 25x21
+#1191 @ 380,103: 29x15
+#1192 @ 821,323: 16x14
+#1193 @ 393,91: 4x6
+#1194 @ 262,892: 19x17
+#1195 @ 355,700: 14x17
+#1196 @ 561,755: 17x13
+#1197 @ 455,132: 28x27
+#1198 @ 627,580: 20x20
+#1199 @ 363,333: 21x13
+#1200 @ 55,812: 12x28
+#1201 @ 622,43: 22x10
+#1202 @ 665,951: 11x14
+#1203 @ 468,444: 13x23
+#1204 @ 113,796: 17x22
+#1205 @ 562,739: 18x18
+#1206 @ 150,898: 13x14
+#1207 @ 822,219: 26x17
+#1208 @ 476,851: 16x17
+#1209 @ 499,589: 23x18
+#1210 @ 639,847: 25x22
+#1211 @ 543,925: 20x24
+#1212 @ 629,203: 29x12
+#1213 @ 567,727: 23x27
+#1214 @ 96,264: 28x24
+#1215 @ 618,379: 12x28
+#1216 @ 945,429: 11x21
+#1217 @ 677,305: 24x27
+#1218 @ 285,383: 22x10
+#1219 @ 949,515: 16x21
+#1220 @ 465,20: 27x27
+#1221 @ 560,596: 13x14
+#1222 @ 882,411: 17x10
+#1223 @ 659,471: 16x10
+#1224 @ 563,866: 25x26
+#1225 @ 384,634: 20x21
+#1226 @ 959,472: 22x10
+#1227 @ 757,684: 18x19
+#1228 @ 894,247: 14x11
+#1229 @ 804,268: 29x26
+#1230 @ 100,575: 26x16
+#1231 @ 741,680: 16x18
+#1232 @ 86,343: 26x18
+#1233 @ 749,804: 24x14
+#1234 @ 420,671: 16x26
+#1235 @ 661,455: 12x18
+#1236 @ 518,394: 27x21
+#1237 @ 210,437: 16x17
+#1238 @ 554,147: 23x23
+#1239 @ 622,945: 15x13
+#1240 @ 195,325: 26x22
+#1241 @ 456,536: 22x25
+#1242 @ 645,678: 23x10
+#1243 @ 367,610: 18x29
+#1244 @ 44,35: 27x25
+#1245 @ 362,574: 27x20
+#1246 @ 301,262: 25x17
+#1247 @ 278,735: 15x28
+#1248 @ 214,19: 29x28
+#1249 @ 100,152: 27x19
+#1250 @ 549,691: 16x11
+#1251 @ 413,80: 12x10
+#1252 @ 644,129: 19x15
+#1253 @ 708,243: 25x14
+#1254 @ 235,575: 14x15
+#1255 @ 26,767: 15x16
+#1256 @ 3,97: 18x20
+#1257 @ 256,655: 24x23
+#1258 @ 778,535: 28x23
+#1259 @ 773,146: 27x14
+#1260 @ 67,287: 21x11
+#1261 @ 796,207: 24x11
+#1262 @ 687,875: 10x19
+#1263 @ 593,374: 21x20
+#1264 @ 923,620: 29x18
+#1265 @ 130,778: 23x26
+#1266 @ 165,769: 29x26
+#1267 @ 262,916: 25x26
+#1268 @ 434,530: 26x11
+#1269 @ 48,827: 10x19
+#1270 @ 446,192: 13x28
+#1271 @ 292,532: 21x20
+#1272 @ 465,308: 13x23
+#1273 @ 30,290: 21x28
+#1274 @ 347,164: 23x19
+#1275 @ 3,691: 24x15
+#1276 @ 567,201: 18x26
+#1277 @ 729,594: 27x17
+#1278 @ 578,51: 13x26
+#1279 @ 652,239: 18x23
+#1280 @ 349,259: 14x29
+#1281 @ 7,605: 23x19
+#1282 @ 249,755: 29x21
+#1283 @ 836,656: 29x19
+#1284 @ 183,838: 10x12
+#1285 @ 285,820: 22x24
+#1286 @ 646,280: 24x16
+#1287 @ 176,186: 24x18
+#1288 @ 941,165: 27x15
+#1289 @ 617,566: 23x12
+#1290 @ 302,795: 13x17
+#1291 @ 729,56: 12x14
+#1292 @ 176,422: 25x22
+#1293 @ 603,554: 25x28
+#1294 @ 524,81: 10x13
+#1295 @ 840,667: 23x18
+#1296 @ 781,949: 28x24
+#1297 @ 132,378: 12x17
+#1298 @ 212,954: 12x12
+#1299 @ 760,599: 13x29
+#1300 @ 872,461: 11x29
+#1301 @ 690,546: 21x29
+#1302 @ 382,28: 22x15
+#1303 @ 703,776: 12x10
+#1304 @ 545,317: 21x26
+#1305 @ 148,699: 27x18

+ 9 - 0
D4.1/D04.1.csproj

@@ -0,0 +1,9 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <OutputType>Exe</OutputType>
+    <TargetFramework>netcoreapp2.1</TargetFramework>
+    <RootNamespace>D4._1</RootNamespace>
+  </PropertyGroup>
+
+</Project>

+ 78 - 0
D4.1/Program.cs

@@ -0,0 +1,78 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Text.RegularExpressions;
+
+namespace D4._1
+{
+    class Program
+    {
+        static void Main(string[] args)
+        {
+            if (args.Length < 1) return;
+            if (File.Exists(args[0]) == false) return;
+
+            var dic = new Dictionary<DateTime, string>();
+            var guard = new Dictionary<string, (int, Dictionary<int, int>)>();
+
+            var file = File.OpenText(args[0]);
+
+            var regex = new Regex(@"\[(.*)\]");
+
+            do
+            {
+                var line = file.ReadLine();
+                if (line == null) break;
+
+                var dateStr = line.Substring(0 , 18).Trim('[', ']');
+                var date = DateTime.Parse(dateStr);
+
+                dic.Add(date, line.Substring(19, line.Length - 19));
+            } while (true);
+
+            var ordered = dic.OrderBy(kvp => kvp.Key);
+
+            string curGuard = string.Empty;
+            DateTime asleep = DateTime.Now;
+            foreach (var kvp in ordered)
+            {
+                var date = kvp.Key;
+                var str = kvp.Value;
+
+                if (str.StartsWith("Guard")) curGuard = str.Split(' ')[1];
+                {
+                    if (guard.ContainsKey(curGuard) == false)
+                    {
+                        var d = new Dictionary<int, int>();
+                        for (var i = 0; i < 60; i++) d.Add(i, 0);
+                        guard.Add(curGuard, (0, d));
+                    }
+                }
+
+                if (str == "falls asleep")
+                {
+                    asleep = date;
+                }
+
+                if (str == "wakes up")
+                {
+                    var c = guard[curGuard];
+                    c.Item1 += (date - asleep).Minutes;
+
+                    for (int m = asleep.Minute; m < date.Minute; m++)
+                        c.Item2[m] += 1;
+
+                    guard[curGuard] = c;
+                }
+            }
+
+            var sleeper = guard.OrderByDescending(g => g.Value.Item1).FirstOrDefault();
+            Console.WriteLine($"Guard {sleeper.Key} sleeps {sleeper.Value.Item1}min");
+            var minutes = sleeper.Value.Item2.OrderByDescending(m => m.Value).FirstOrDefault();
+            Console.WriteLine($"Guard {sleeper.Key} mostly slept on {minutes.Key}th minute");
+            var id = int.Parse(sleeper.Key.TrimStart('#'));
+            Console.WriteLine($"Answer : {id * minutes.Key}");
+        }
+    }
+}

+ 8 - 0
D4.1/Properties/launchSettings.json

@@ -0,0 +1,8 @@
+{
+  "profiles": {
+    "D04.1": {
+      "commandName": "Project",
+      "commandLineArgs": "\"D:\\adv\\Adv2018\\D4.1\\input.txt\""
+    }
+  }
+}

+ 1159 - 0
D4.1/input.txt

@@ -0,0 +1,1159 @@
+[1518-07-18 23:57] Guard #157 begins shift
+[1518-04-18 00:44] wakes up
+[1518-10-26 00:20] falls asleep
+[1518-10-12 00:32] falls asleep
+[1518-04-12 00:03] Guard #2857 begins shift
+[1518-08-14 23:52] Guard #331 begins shift
+[1518-05-19 00:01] Guard #1801 begins shift
+[1518-09-22 00:52] wakes up
+[1518-07-03 00:32] wakes up
+[1518-11-08 00:40] falls asleep
+[1518-01-23 00:19] falls asleep
+[1518-05-03 00:43] wakes up
+[1518-07-04 00:54] wakes up
+[1518-06-18 00:20] falls asleep
+[1518-11-11 23:57] Guard #571 begins shift
+[1518-11-11 00:51] wakes up
+[1518-06-25 00:55] wakes up
+[1518-05-20 00:47] falls asleep
+[1518-07-07 23:50] Guard #2269 begins shift
+[1518-05-19 00:57] falls asleep
+[1518-07-16 00:30] wakes up
+[1518-04-05 23:46] Guard #1511 begins shift
+[1518-05-18 00:31] falls asleep
+[1518-08-07 00:25] falls asleep
+[1518-10-20 00:49] wakes up
+[1518-01-23 00:02] Guard #661 begins shift
+[1518-02-12 00:50] wakes up
+[1518-08-27 00:58] wakes up
+[1518-09-13 00:37] wakes up
+[1518-08-17 23:58] Guard #1801 begins shift
+[1518-10-04 00:16] falls asleep
+[1518-04-01 00:57] wakes up
+[1518-04-03 00:40] falls asleep
+[1518-02-04 00:20] falls asleep
+[1518-01-29 00:03] falls asleep
+[1518-04-17 00:32] wakes up
+[1518-09-08 00:22] falls asleep
+[1518-10-09 00:49] wakes up
+[1518-09-18 23:50] Guard #571 begins shift
+[1518-08-29 00:10] falls asleep
+[1518-09-09 00:01] Guard #971 begins shift
+[1518-03-25 00:51] falls asleep
+[1518-03-11 00:07] falls asleep
+[1518-02-01 00:53] wakes up
+[1518-02-22 00:50] wakes up
+[1518-02-11 23:57] Guard #661 begins shift
+[1518-04-09 00:30] falls asleep
+[1518-05-06 00:16] falls asleep
+[1518-09-29 00:18] falls asleep
+[1518-05-15 00:28] wakes up
+[1518-05-17 00:10] falls asleep
+[1518-07-01 00:44] wakes up
+[1518-02-12 00:30] falls asleep
+[1518-04-27 23:58] Guard #3257 begins shift
+[1518-10-21 00:55] wakes up
+[1518-02-07 00:10] wakes up
+[1518-08-26 00:53] falls asleep
+[1518-02-25 23:58] Guard #557 begins shift
+[1518-09-16 00:53] wakes up
+[1518-07-27 00:52] wakes up
+[1518-04-23 00:45] falls asleep
+[1518-03-24 00:03] Guard #157 begins shift
+[1518-06-09 00:44] wakes up
+[1518-10-10 00:47] wakes up
+[1518-07-13 23:58] Guard #727 begins shift
+[1518-06-12 00:31] wakes up
+[1518-04-21 00:16] falls asleep
+[1518-06-05 00:02] Guard #1733 begins shift
+[1518-11-05 00:49] wakes up
+[1518-03-09 00:23] falls asleep
+[1518-03-25 23:56] Guard #727 begins shift
+[1518-06-19 00:11] falls asleep
+[1518-05-13 00:08] falls asleep
+[1518-09-04 00:32] falls asleep
+[1518-02-27 00:45] falls asleep
+[1518-04-09 00:56] wakes up
+[1518-10-14 00:24] wakes up
+[1518-08-13 00:00] Guard #2269 begins shift
+[1518-09-15 00:01] Guard #2269 begins shift
+[1518-09-27 00:48] wakes up
+[1518-01-20 00:31] wakes up
+[1518-08-16 00:01] Guard #1733 begins shift
+[1518-06-01 00:51] wakes up
+[1518-04-25 00:28] falls asleep
+[1518-03-25 00:48] wakes up
+[1518-06-29 00:52] wakes up
+[1518-06-23 00:19] falls asleep
+[1518-02-08 23:59] Guard #557 begins shift
+[1518-05-28 23:48] Guard #113 begins shift
+[1518-07-06 00:05] wakes up
+[1518-08-07 23:49] Guard #1373 begins shift
+[1518-09-13 00:00] Guard #587 begins shift
+[1518-07-21 23:57] Guard #727 begins shift
+[1518-11-07 00:25] falls asleep
+[1518-04-13 00:04] Guard #661 begins shift
+[1518-09-07 00:52] wakes up
+[1518-10-20 00:44] falls asleep
+[1518-02-08 00:00] Guard #587 begins shift
+[1518-03-18 00:35] falls asleep
+[1518-07-26 00:47] wakes up
+[1518-06-22 00:10] falls asleep
+[1518-08-13 00:25] falls asleep
+[1518-05-16 00:09] falls asleep
+[1518-04-03 00:52] wakes up
+[1518-08-19 00:02] Guard #103 begins shift
+[1518-01-27 00:04] Guard #2267 begins shift
+[1518-05-05 00:54] wakes up
+[1518-08-01 23:47] Guard #571 begins shift
+[1518-02-24 00:24] falls asleep
+[1518-02-19 00:48] wakes up
+[1518-05-25 00:55] wakes up
+[1518-10-31 00:51] falls asleep
+[1518-10-31 00:16] falls asleep
+[1518-03-28 00:19] wakes up
+[1518-08-02 00:10] wakes up
+[1518-11-23 00:16] falls asleep
+[1518-09-17 00:00] Guard #1021 begins shift
+[1518-07-13 00:48] wakes up
+[1518-10-01 00:56] wakes up
+[1518-05-03 23:51] Guard #113 begins shift
+[1518-06-28 00:39] wakes up
+[1518-10-26 00:37] falls asleep
+[1518-08-03 00:45] falls asleep
+[1518-01-27 00:25] wakes up
+[1518-09-18 00:17] falls asleep
+[1518-07-05 00:40] falls asleep
+[1518-08-17 00:54] falls asleep
+[1518-09-30 00:51] wakes up
+[1518-05-07 00:28] falls asleep
+[1518-11-01 00:46] falls asleep
+[1518-07-02 00:18] falls asleep
+[1518-09-09 00:50] wakes up
+[1518-03-02 00:31] falls asleep
+[1518-03-11 00:01] Guard #2083 begins shift
+[1518-03-12 00:19] falls asleep
+[1518-08-19 00:12] falls asleep
+[1518-05-14 00:42] falls asleep
+[1518-05-28 00:15] falls asleep
+[1518-09-24 00:56] falls asleep
+[1518-05-11 00:43] falls asleep
+[1518-05-06 00:45] wakes up
+[1518-03-05 23:56] Guard #727 begins shift
+[1518-01-21 00:06] falls asleep
+[1518-08-28 00:13] falls asleep
+[1518-05-02 00:34] wakes up
+[1518-06-07 00:46] falls asleep
+[1518-01-28 00:13] falls asleep
+[1518-07-28 00:00] Guard #571 begins shift
+[1518-02-11 00:50] falls asleep
+[1518-03-03 00:55] wakes up
+[1518-10-06 00:36] falls asleep
+[1518-08-17 00:57] wakes up
+[1518-04-22 00:04] Guard #2857 begins shift
+[1518-08-21 23:59] Guard #557 begins shift
+[1518-09-26 00:01] Guard #2267 begins shift
+[1518-10-04 23:59] Guard #661 begins shift
+[1518-07-25 00:36] wakes up
+[1518-11-09 00:47] wakes up
+[1518-05-31 00:04] Guard #331 begins shift
+[1518-07-30 00:00] Guard #727 begins shift
+[1518-08-05 00:59] wakes up
+[1518-08-28 00:03] Guard #571 begins shift
+[1518-07-23 00:36] falls asleep
+[1518-04-23 00:00] Guard #557 begins shift
+[1518-05-18 00:59] wakes up
+[1518-09-26 00:37] falls asleep
+[1518-05-26 00:04] Guard #331 begins shift
+[1518-08-27 00:49] wakes up
+[1518-01-25 00:57] falls asleep
+[1518-08-22 00:11] falls asleep
+[1518-08-04 23:58] Guard #331 begins shift
+[1518-07-10 00:05] falls asleep
+[1518-08-14 00:55] wakes up
+[1518-02-27 00:42] wakes up
+[1518-02-28 00:00] Guard #557 begins shift
+[1518-02-19 00:51] falls asleep
+[1518-07-21 00:56] wakes up
+[1518-04-03 00:01] falls asleep
+[1518-07-09 00:40] wakes up
+[1518-02-06 23:48] Guard #1373 begins shift
+[1518-05-15 00:13] falls asleep
+[1518-11-13 00:04] Guard #2179 begins shift
+[1518-03-06 00:31] falls asleep
+[1518-07-01 23:56] Guard #73 begins shift
+[1518-06-13 00:39] falls asleep
+[1518-08-22 23:57] Guard #1021 begins shift
+[1518-07-17 00:58] wakes up
+[1518-04-12 00:14] falls asleep
+[1518-06-29 23:58] Guard #331 begins shift
+[1518-05-13 00:52] wakes up
+[1518-09-04 23:56] Guard #587 begins shift
+[1518-09-19 00:44] wakes up
+[1518-07-26 00:00] Guard #661 begins shift
+[1518-10-29 00:31] falls asleep
+[1518-08-16 23:56] Guard #661 begins shift
+[1518-10-07 00:48] wakes up
+[1518-03-30 00:00] Guard #2269 begins shift
+[1518-06-05 23:58] Guard #571 begins shift
+[1518-08-28 00:57] falls asleep
+[1518-05-11 00:57] falls asleep
+[1518-04-20 00:50] wakes up
+[1518-05-27 00:08] falls asleep
+[1518-08-29 00:50] falls asleep
+[1518-05-23 00:57] wakes up
+[1518-04-30 00:58] wakes up
+[1518-10-18 00:50] wakes up
+[1518-06-21 00:19] falls asleep
+[1518-04-12 00:46] wakes up
+[1518-03-21 00:47] wakes up
+[1518-05-03 00:01] falls asleep
+[1518-06-14 00:02] Guard #1511 begins shift
+[1518-04-03 00:32] wakes up
+[1518-08-07 00:53] wakes up
+[1518-10-15 00:01] Guard #2083 begins shift
+[1518-10-25 00:45] falls asleep
+[1518-10-27 00:33] falls asleep
+[1518-08-08 00:39] wakes up
+[1518-09-30 00:20] falls asleep
+[1518-10-27 00:59] wakes up
+[1518-10-26 00:46] wakes up
+[1518-07-10 00:43] wakes up
+[1518-04-15 00:25] falls asleep
+[1518-05-24 00:32] falls asleep
+[1518-07-20 00:57] wakes up
+[1518-03-25 00:59] wakes up
+[1518-03-24 00:48] wakes up
+[1518-02-12 00:49] falls asleep
+[1518-09-05 00:09] falls asleep
+[1518-02-25 00:25] falls asleep
+[1518-01-25 00:58] wakes up
+[1518-02-01 23:58] Guard #2269 begins shift
+[1518-04-23 00:55] falls asleep
+[1518-01-19 00:55] wakes up
+[1518-05-29 00:19] falls asleep
+[1518-07-04 00:53] falls asleep
+[1518-09-23 00:00] Guard #73 begins shift
+[1518-08-09 00:02] Guard #73 begins shift
+[1518-09-17 00:59] wakes up
+[1518-03-19 23:56] Guard #73 begins shift
+[1518-09-28 00:55] wakes up
+[1518-11-08 00:37] wakes up
+[1518-10-30 00:00] Guard #661 begins shift
+[1518-11-16 00:43] wakes up
+[1518-02-19 00:03] Guard #727 begins shift
+[1518-07-11 00:43] falls asleep
+[1518-11-21 23:56] Guard #157 begins shift
+[1518-03-20 00:08] falls asleep
+[1518-03-16 00:48] falls asleep
+[1518-10-31 23:48] Guard #73 begins shift
+[1518-07-03 00:55] wakes up
+[1518-07-29 00:04] falls asleep
+[1518-10-03 00:34] falls asleep
+[1518-02-19 23:47] Guard #2857 begins shift
+[1518-08-28 00:31] wakes up
+[1518-04-17 00:40] falls asleep
+[1518-03-15 00:04] falls asleep
+[1518-11-19 00:09] falls asleep
+[1518-04-18 00:56] wakes up
+[1518-03-04 23:57] Guard #2179 begins shift
+[1518-02-17 00:36] falls asleep
+[1518-04-10 00:40] wakes up
+[1518-02-25 00:43] falls asleep
+[1518-02-25 00:50] falls asleep
+[1518-05-21 00:04] Guard #157 begins shift
+[1518-08-10 00:53] wakes up
+[1518-06-01 00:47] falls asleep
+[1518-10-26 00:26] wakes up
+[1518-10-02 00:16] wakes up
+[1518-08-25 00:24] falls asleep
+[1518-05-03 00:53] wakes up
+[1518-11-07 00:47] wakes up
+[1518-11-23 00:02] Guard #2083 begins shift
+[1518-10-11 00:40] wakes up
+[1518-09-06 00:33] falls asleep
+[1518-11-07 00:33] falls asleep
+[1518-10-05 00:14] falls asleep
+[1518-10-24 00:12] falls asleep
+[1518-09-09 00:45] falls asleep
+[1518-10-26 00:00] Guard #2857 begins shift
+[1518-10-16 23:58] Guard #3257 begins shift
+[1518-07-08 00:37] wakes up
+[1518-10-06 00:05] falls asleep
+[1518-08-25 00:39] wakes up
+[1518-03-17 00:58] wakes up
+[1518-01-21 23:57] Guard #557 begins shift
+[1518-10-25 00:47] wakes up
+[1518-10-14 00:33] wakes up
+[1518-03-20 00:49] wakes up
+[1518-02-17 00:37] wakes up
+[1518-08-27 00:57] falls asleep
+[1518-09-10 00:01] Guard #331 begins shift
+[1518-05-18 00:36] wakes up
+[1518-06-27 00:03] Guard #2083 begins shift
+[1518-02-12 00:36] wakes up
+[1518-11-04 00:47] wakes up
+[1518-06-11 00:31] falls asleep
+[1518-04-11 00:57] wakes up
+[1518-06-19 00:50] wakes up
+[1518-11-11 00:43] falls asleep
+[1518-05-27 00:59] wakes up
+[1518-03-07 00:43] wakes up
+[1518-05-20 00:23] wakes up
+[1518-08-06 23:59] Guard #331 begins shift
+[1518-02-05 00:24] falls asleep
+[1518-03-02 23:52] Guard #3257 begins shift
+[1518-01-29 00:23] wakes up
+[1518-10-10 00:50] falls asleep
+[1518-11-10 00:00] Guard #1021 begins shift
+[1518-07-12 00:26] falls asleep
+[1518-02-07 00:04] falls asleep
+[1518-08-10 00:47] falls asleep
+[1518-11-21 00:31] wakes up
+[1518-05-17 00:07] wakes up
+[1518-08-10 00:02] Guard #2269 begins shift
+[1518-11-19 00:36] wakes up
+[1518-03-14 00:57] wakes up
+[1518-09-24 00:00] Guard #1801 begins shift
+[1518-10-04 00:48] wakes up
+[1518-07-30 00:59] wakes up
+[1518-10-21 00:54] falls asleep
+[1518-07-07 00:35] falls asleep
+[1518-05-12 00:25] wakes up
+[1518-04-12 00:17] wakes up
+[1518-08-25 00:53] wakes up
+[1518-11-12 00:49] wakes up
+[1518-03-31 00:25] falls asleep
+[1518-05-28 00:03] Guard #727 begins shift
+[1518-08-25 00:02] Guard #1021 begins shift
+[1518-06-23 00:45] wakes up
+[1518-06-04 00:43] wakes up
+[1518-07-18 00:02] Guard #727 begins shift
+[1518-05-24 00:50] wakes up
+[1518-04-25 00:38] wakes up
+[1518-07-12 00:15] falls asleep
+[1518-01-21 00:45] wakes up
+[1518-08-02 00:02] falls asleep
+[1518-09-10 00:51] falls asleep
+[1518-06-08 23:58] Guard #2857 begins shift
+[1518-01-27 00:12] falls asleep
+[1518-09-07 23:52] Guard #157 begins shift
+[1518-08-03 00:59] wakes up
+[1518-09-05 00:12] wakes up
+[1518-09-25 00:47] wakes up
+[1518-09-02 00:08] falls asleep
+[1518-10-07 00:53] falls asleep
+[1518-02-25 00:37] wakes up
+[1518-08-12 00:09] falls asleep
+[1518-11-02 00:53] wakes up
+[1518-10-31 00:53] wakes up
+[1518-07-31 00:32] falls asleep
+[1518-02-27 00:49] wakes up
+[1518-10-11 00:02] Guard #1801 begins shift
+[1518-07-23 00:26] falls asleep
+[1518-02-06 00:46] wakes up
+[1518-02-18 00:10] falls asleep
+[1518-02-28 23:58] Guard #2083 begins shift
+[1518-06-25 00:00] Guard #971 begins shift
+[1518-02-16 00:05] falls asleep
+[1518-03-12 00:51] falls asleep
+[1518-08-21 00:48] wakes up
+[1518-03-16 00:49] wakes up
+[1518-10-19 00:00] Guard #1733 begins shift
+[1518-07-22 23:59] Guard #2267 begins shift
+[1518-02-24 00:56] wakes up
+[1518-03-27 00:03] Guard #661 begins shift
+[1518-11-01 00:56] falls asleep
+[1518-02-18 00:00] Guard #103 begins shift
+[1518-04-23 00:52] wakes up
+[1518-11-16 00:02] Guard #571 begins shift
+[1518-10-31 00:32] wakes up
+[1518-01-23 00:45] wakes up
+[1518-08-12 00:16] wakes up
+[1518-02-13 23:59] Guard #2269 begins shift
+[1518-09-24 00:58] wakes up
+[1518-09-22 00:46] falls asleep
+[1518-09-02 00:33] wakes up
+[1518-08-25 00:51] falls asleep
+[1518-04-25 00:04] Guard #557 begins shift
+[1518-07-05 00:59] wakes up
+[1518-06-15 00:45] wakes up
+[1518-09-10 00:59] wakes up
+[1518-08-31 00:17] falls asleep
+[1518-07-12 23:58] Guard #113 begins shift
+[1518-08-15 00:53] wakes up
+[1518-05-11 00:59] wakes up
+[1518-07-07 00:30] falls asleep
+[1518-04-11 00:40] falls asleep
+[1518-09-01 00:44] falls asleep
+[1518-02-21 00:32] falls asleep
+[1518-03-11 23:57] Guard #557 begins shift
+[1518-05-13 00:34] falls asleep
+[1518-04-15 00:50] wakes up
+[1518-10-06 00:59] wakes up
+[1518-04-04 23:56] Guard #3257 begins shift
+[1518-10-20 00:01] Guard #2267 begins shift
+[1518-02-06 00:41] falls asleep
+[1518-07-14 23:59] Guard #157 begins shift
+[1518-11-07 00:26] wakes up
+[1518-05-20 00:51] wakes up
+[1518-10-08 00:47] wakes up
+[1518-10-11 00:52] wakes up
+[1518-08-09 00:52] wakes up
+[1518-03-16 00:58] wakes up
+[1518-04-25 23:57] Guard #281 begins shift
+[1518-05-31 00:55] wakes up
+[1518-06-09 00:13] falls asleep
+[1518-09-19 23:58] Guard #971 begins shift
+[1518-04-07 00:57] wakes up
+[1518-01-19 00:19] falls asleep
+[1518-05-03 00:52] falls asleep
+[1518-11-03 23:57] Guard #2083 begins shift
+[1518-05-26 00:56] wakes up
+[1518-03-14 00:04] falls asleep
+[1518-07-01 00:02] Guard #103 begins shift
+[1518-07-07 00:08] falls asleep
+[1518-05-06 00:01] Guard #661 begins shift
+[1518-04-19 00:11] falls asleep
+[1518-03-17 00:57] falls asleep
+[1518-08-26 00:57] wakes up
+[1518-07-06 00:04] falls asleep
+[1518-02-08 00:48] wakes up
+[1518-04-12 00:26] falls asleep
+[1518-08-26 00:01] Guard #331 begins shift
+[1518-04-15 00:02] Guard #157 begins shift
+[1518-06-10 00:25] wakes up
+[1518-10-10 00:55] wakes up
+[1518-05-04 00:34] wakes up
+[1518-11-20 00:54] falls asleep
+[1518-05-22 00:53] wakes up
+[1518-09-03 00:18] falls asleep
+[1518-07-03 23:57] Guard #2267 begins shift
+[1518-09-03 00:45] wakes up
+[1518-02-14 00:56] wakes up
+[1518-06-03 23:57] Guard #587 begins shift
+[1518-02-14 23:53] Guard #2083 begins shift
+[1518-11-06 00:26] falls asleep
+[1518-06-09 00:55] falls asleep
+[1518-07-11 00:55] wakes up
+[1518-04-17 23:56] Guard #331 begins shift
+[1518-08-22 00:47] wakes up
+[1518-07-29 00:48] falls asleep
+[1518-04-28 00:42] falls asleep
+[1518-11-02 23:56] Guard #3257 begins shift
+[1518-08-31 00:00] Guard #661 begins shift
+[1518-04-13 00:53] wakes up
+[1518-03-03 00:05] falls asleep
+[1518-04-01 00:36] falls asleep
+[1518-03-10 00:45] wakes up
+[1518-06-20 23:58] Guard #103 begins shift
+[1518-04-30 00:06] falls asleep
+[1518-05-21 00:44] falls asleep
+[1518-07-27 00:43] falls asleep
+[1518-07-07 00:47] wakes up
+[1518-02-23 00:01] Guard #661 begins shift
+[1518-07-29 00:45] wakes up
+[1518-05-28 00:58] wakes up
+[1518-05-12 00:55] wakes up
+[1518-07-28 23:50] Guard #73 begins shift
+[1518-06-03 00:51] wakes up
+[1518-02-25 00:03] Guard #331 begins shift
+[1518-09-11 23:59] Guard #103 begins shift
+[1518-06-17 00:52] wakes up
+[1518-04-18 00:23] falls asleep
+[1518-04-06 00:51] wakes up
+[1518-08-23 00:20] falls asleep
+[1518-09-21 00:00] Guard #571 begins shift
+[1518-06-26 00:57] wakes up
+[1518-02-13 00:58] wakes up
+[1518-09-13 00:22] falls asleep
+[1518-02-17 00:00] Guard #661 begins shift
+[1518-05-26 00:49] falls asleep
+[1518-02-09 00:59] wakes up
+[1518-08-21 00:00] Guard #571 begins shift
+[1518-10-20 23:59] Guard #157 begins shift
+[1518-05-19 00:29] wakes up
+[1518-08-14 00:42] wakes up
+[1518-05-04 23:50] Guard #2857 begins shift
+[1518-05-29 23:58] Guard #2267 begins shift
+[1518-09-05 00:29] falls asleep
+[1518-10-13 00:33] falls asleep
+[1518-05-21 00:30] wakes up
+[1518-02-15 00:47] wakes up
+[1518-03-11 00:52] wakes up
+[1518-04-21 00:01] Guard #1511 begins shift
+[1518-06-14 00:35] wakes up
+[1518-09-07 00:27] falls asleep
+[1518-09-14 00:11] falls asleep
+[1518-06-02 00:01] Guard #2179 begins shift
+[1518-10-17 23:58] Guard #73 begins shift
+[1518-07-07 00:01] Guard #557 begins shift
+[1518-10-03 00:56] falls asleep
+[1518-02-25 00:44] wakes up
+[1518-11-09 00:28] falls asleep
+[1518-06-23 00:00] Guard #971 begins shift
+[1518-10-13 23:58] Guard #557 begins shift
+[1518-01-30 23:59] Guard #1511 begins shift
+[1518-04-20 00:04] Guard #2083 begins shift
+[1518-05-16 00:55] wakes up
+[1518-06-28 23:56] Guard #331 begins shift
+[1518-10-24 00:29] wakes up
+[1518-04-10 00:38] falls asleep
+[1518-06-14 00:20] falls asleep
+[1518-05-17 00:20] wakes up
+[1518-09-21 23:58] Guard #2267 begins shift
+[1518-05-14 00:48] wakes up
+[1518-03-16 23:58] Guard #557 begins shift
+[1518-07-09 00:28] falls asleep
+[1518-11-22 00:44] wakes up
+[1518-01-31 00:39] falls asleep
+[1518-02-10 23:59] Guard #2857 begins shift
+[1518-06-10 00:57] wakes up
+[1518-07-23 23:50] Guard #2083 begins shift
+[1518-04-14 00:04] Guard #281 begins shift
+[1518-08-19 00:27] falls asleep
+[1518-01-22 00:27] falls asleep
+[1518-04-24 00:02] Guard #1373 begins shift
+[1518-02-07 00:39] falls asleep
+[1518-10-22 00:03] Guard #2857 begins shift
+[1518-11-12 00:36] falls asleep
+[1518-02-27 00:04] Guard #971 begins shift
+[1518-10-27 00:42] wakes up
+[1518-03-12 00:35] wakes up
+[1518-02-19 00:55] wakes up
+[1518-11-14 23:58] Guard #557 begins shift
+[1518-07-01 00:14] falls asleep
+[1518-05-07 00:40] wakes up
+[1518-07-02 00:30] wakes up
+[1518-08-20 00:54] wakes up
+[1518-03-29 00:58] wakes up
+[1518-09-04 00:00] Guard #113 begins shift
+[1518-09-20 00:31] falls asleep
+[1518-05-29 00:15] wakes up
+[1518-05-01 00:49] wakes up
+[1518-04-09 00:42] wakes up
+[1518-06-13 00:35] wakes up
+[1518-02-02 00:57] wakes up
+[1518-04-27 00:37] wakes up
+[1518-10-23 00:34] wakes up
+[1518-06-07 23:59] Guard #727 begins shift
+[1518-09-27 00:23] falls asleep
+[1518-10-06 00:24] wakes up
+[1518-06-28 00:45] falls asleep
+[1518-07-22 00:36] falls asleep
+[1518-04-11 00:31] wakes up
+[1518-04-08 00:47] wakes up
+[1518-11-20 00:59] wakes up
+[1518-01-20 00:55] wakes up
+[1518-02-17 00:50] falls asleep
+[1518-04-24 00:16] wakes up
+[1518-10-22 00:30] falls asleep
+[1518-05-08 23:51] Guard #103 begins shift
+[1518-09-03 00:04] Guard #727 begins shift
+[1518-08-29 23:50] Guard #2269 begins shift
+[1518-06-08 00:21] falls asleep
+[1518-08-15 00:47] wakes up
+[1518-06-30 00:26] falls asleep
+[1518-03-04 00:35] wakes up
+[1518-01-28 00:02] Guard #331 begins shift
+[1518-06-24 00:04] Guard #113 begins shift
+[1518-03-19 00:42] wakes up
+[1518-04-04 00:41] falls asleep
+[1518-07-29 00:51] wakes up
+[1518-10-11 00:11] falls asleep
+[1518-03-18 00:57] wakes up
+[1518-10-08 00:42] falls asleep
+[1518-07-27 00:00] Guard #2269 begins shift
+[1518-04-22 00:35] wakes up
+[1518-03-30 23:59] Guard #971 begins shift
+[1518-09-09 00:58] wakes up
+[1518-03-06 23:59] Guard #1801 begins shift
+[1518-05-18 00:42] falls asleep
+[1518-02-01 00:24] falls asleep
+[1518-04-29 00:57] wakes up
+[1518-09-27 23:59] Guard #2083 begins shift
+[1518-07-18 00:31] falls asleep
+[1518-09-06 23:58] Guard #157 begins shift
+[1518-03-16 00:38] wakes up
+[1518-10-07 00:28] falls asleep
+[1518-09-10 00:22] wakes up
+[1518-08-14 00:01] Guard #157 begins shift
+[1518-07-16 00:18] falls asleep
+[1518-06-21 00:58] wakes up
+[1518-04-06 00:05] falls asleep
+[1518-02-14 00:31] falls asleep
+[1518-09-08 00:47] falls asleep
+[1518-06-07 00:37] falls asleep
+[1518-03-28 00:00] Guard #587 begins shift
+[1518-03-10 00:03] Guard #157 begins shift
+[1518-11-17 00:06] falls asleep
+[1518-11-10 00:23] falls asleep
+[1518-09-13 00:48] falls asleep
+[1518-10-28 00:30] falls asleep
+[1518-04-18 00:52] falls asleep
+[1518-02-22 00:34] falls asleep
+[1518-05-03 00:22] falls asleep
+[1518-06-25 00:49] wakes up
+[1518-06-01 00:29] wakes up
+[1518-10-06 23:58] Guard #157 begins shift
+[1518-11-08 00:49] wakes up
+[1518-09-21 00:47] wakes up
+[1518-08-29 00:56] wakes up
+[1518-08-31 23:59] Guard #1801 begins shift
+[1518-02-11 00:53] wakes up
+[1518-05-11 23:56] Guard #1373 begins shift
+[1518-07-07 00:09] wakes up
+[1518-09-28 00:51] falls asleep
+[1518-07-15 00:46] falls asleep
+[1518-08-05 00:42] falls asleep
+[1518-07-21 00:36] falls asleep
+[1518-11-09 00:00] Guard #1801 begins shift
+[1518-11-23 00:37] wakes up
+[1518-09-16 00:09] falls asleep
+[1518-02-28 00:14] falls asleep
+[1518-06-13 00:28] falls asleep
+[1518-06-07 00:57] wakes up
+[1518-05-11 00:00] Guard #971 begins shift
+[1518-01-24 00:32] falls asleep
+[1518-02-15 00:03] falls asleep
+[1518-11-19 00:47] falls asleep
+[1518-07-26 00:08] falls asleep
+[1518-03-21 23:48] Guard #661 begins shift
+[1518-07-08 00:44] falls asleep
+[1518-04-16 00:18] falls asleep
+[1518-08-14 00:49] falls asleep
+[1518-07-28 00:36] wakes up
+[1518-07-14 00:59] wakes up
+[1518-07-14 00:41] falls asleep
+[1518-07-21 00:01] Guard #1021 begins shift
+[1518-06-26 00:38] falls asleep
+[1518-09-08 00:57] wakes up
+[1518-01-20 23:56] Guard #3257 begins shift
+[1518-01-26 00:04] Guard #661 begins shift
+[1518-03-12 23:59] Guard #1733 begins shift
+[1518-06-08 00:54] wakes up
+[1518-07-04 00:12] falls asleep
+[1518-06-21 00:31] wakes up
+[1518-04-02 23:47] Guard #103 begins shift
+[1518-10-12 00:58] wakes up
+[1518-10-16 00:02] Guard #2857 begins shift
+[1518-02-13 00:38] wakes up
+[1518-03-22 00:04] falls asleep
+[1518-01-30 00:07] falls asleep
+[1518-09-23 00:30] wakes up
+[1518-09-02 00:03] Guard #587 begins shift
+[1518-08-05 23:49] Guard #2857 begins shift
+[1518-11-17 00:00] Guard #661 begins shift
+[1518-10-02 00:07] falls asleep
+[1518-07-08 00:03] falls asleep
+[1518-04-02 00:27] falls asleep
+[1518-09-04 00:34] wakes up
+[1518-07-08 23:56] Guard #2083 begins shift
+[1518-06-22 00:01] Guard #587 begins shift
+[1518-05-17 00:30] falls asleep
+[1518-05-18 00:01] Guard #1801 begins shift
+[1518-02-19 00:33] falls asleep
+[1518-07-19 00:51] wakes up
+[1518-01-26 00:16] falls asleep
+[1518-04-10 00:02] Guard #1021 begins shift
+[1518-10-27 23:57] Guard #3257 begins shift
+[1518-04-01 00:03] Guard #587 begins shift
+[1518-06-12 23:56] Guard #113 begins shift
+[1518-03-29 00:06] falls asleep
+[1518-11-16 00:23] falls asleep
+[1518-05-24 23:58] Guard #1801 begins shift
+[1518-06-29 00:34] wakes up
+[1518-04-09 00:55] falls asleep
+[1518-03-31 00:38] falls asleep
+[1518-11-12 00:58] wakes up
+[1518-09-08 00:04] falls asleep
+[1518-05-16 00:04] Guard #557 begins shift
+[1518-03-15 00:47] wakes up
+[1518-10-31 00:45] falls asleep
+[1518-03-02 00:57] wakes up
+[1518-10-27 00:54] falls asleep
+[1518-10-05 23:48] Guard #971 begins shift
+[1518-02-13 00:41] falls asleep
+[1518-08-11 00:43] wakes up
+[1518-11-15 00:06] falls asleep
+[1518-05-14 00:36] wakes up
+[1518-09-25 00:41] falls asleep
+[1518-09-14 00:53] falls asleep
+[1518-08-09 00:17] wakes up
+[1518-07-23 00:58] wakes up
+[1518-03-01 00:30] falls asleep
+[1518-11-18 00:28] wakes up
+[1518-06-25 00:44] falls asleep
+[1518-05-19 23:49] Guard #2267 begins shift
+[1518-06-10 00:00] Guard #73 begins shift
+[1518-05-01 23:54] Guard #1021 begins shift
+[1518-01-25 00:53] wakes up
+[1518-11-15 00:24] falls asleep
+[1518-02-10 00:40] wakes up
+[1518-02-15 23:53] Guard #2267 begins shift
+[1518-03-18 23:57] Guard #1373 begins shift
+[1518-11-20 00:04] Guard #2857 begins shift
+[1518-10-03 00:40] wakes up
+[1518-06-13 00:56] wakes up
+[1518-08-11 00:02] Guard #2083 begins shift
+[1518-04-05 00:56] falls asleep
+[1518-09-14 00:49] wakes up
+[1518-04-16 00:50] wakes up
+[1518-08-31 00:49] wakes up
+[1518-05-14 00:09] falls asleep
+[1518-02-04 00:00] Guard #661 begins shift
+[1518-07-07 00:32] wakes up
+[1518-10-08 23:58] Guard #2269 begins shift
+[1518-09-01 00:41] wakes up
+[1518-02-13 00:04] Guard #971 begins shift
+[1518-11-04 00:31] falls asleep
+[1518-05-17 00:47] wakes up
+[1518-05-14 00:32] falls asleep
+[1518-10-15 00:57] wakes up
+[1518-09-27 00:00] Guard #971 begins shift
+[1518-06-12 00:17] falls asleep
+[1518-02-05 00:03] Guard #2267 begins shift
+[1518-05-13 00:01] Guard #1511 begins shift
+[1518-10-27 00:00] Guard #1511 begins shift
+[1518-07-13 00:29] falls asleep
+[1518-06-28 00:47] wakes up
+[1518-10-28 00:57] wakes up
+[1518-07-22 00:38] wakes up
+[1518-05-08 00:02] Guard #571 begins shift
+[1518-05-23 23:58] Guard #971 begins shift
+[1518-10-22 00:34] wakes up
+[1518-08-09 00:08] falls asleep
+[1518-07-12 00:00] Guard #971 begins shift
+[1518-03-09 00:02] Guard #661 begins shift
+[1518-11-20 23:47] Guard #1511 begins shift
+[1518-04-16 00:00] Guard #113 begins shift
+[1518-03-22 00:35] wakes up
+[1518-10-09 00:20] falls asleep
+[1518-03-07 00:08] falls asleep
+[1518-08-19 00:30] wakes up
+[1518-11-01 23:56] Guard #157 begins shift
+[1518-09-01 00:24] falls asleep
+[1518-04-08 00:02] Guard #2083 begins shift
+[1518-08-28 23:56] Guard #1801 begins shift
+[1518-03-22 23:58] Guard #281 begins shift
+[1518-03-17 00:45] wakes up
+[1518-02-16 00:53] wakes up
+[1518-04-13 00:47] falls asleep
+[1518-07-15 00:57] wakes up
+[1518-10-23 00:49] falls asleep
+[1518-07-25 00:04] Guard #587 begins shift
+[1518-03-14 00:46] falls asleep
+[1518-08-20 00:01] Guard #971 begins shift
+[1518-06-20 00:00] Guard #2857 begins shift
+[1518-02-09 00:21] falls asleep
+[1518-05-29 00:03] falls asleep
+[1518-02-22 00:02] Guard #331 begins shift
+[1518-07-03 00:54] falls asleep
+[1518-07-12 00:51] wakes up
+[1518-11-11 00:00] Guard #971 begins shift
+[1518-08-20 00:22] falls asleep
+[1518-10-02 00:48] wakes up
+[1518-10-12 23:58] Guard #727 begins shift
+[1518-07-04 00:13] wakes up
+[1518-08-15 00:05] falls asleep
+[1518-03-17 00:42] falls asleep
+[1518-03-29 00:49] wakes up
+[1518-02-01 00:47] falls asleep
+[1518-02-05 00:45] wakes up
+[1518-02-18 00:30] falls asleep
+[1518-05-21 00:06] falls asleep
+[1518-08-18 00:26] falls asleep
+[1518-02-28 00:39] wakes up
+[1518-05-07 00:00] Guard #2857 begins shift
+[1518-03-07 23:59] Guard #2179 begins shift
+[1518-03-22 00:22] wakes up
+[1518-11-17 00:43] wakes up
+[1518-09-18 00:37] wakes up
+[1518-09-29 00:43] wakes up
+[1518-09-23 00:37] falls asleep
+[1518-11-19 00:02] Guard #571 begins shift
+[1518-06-03 00:33] falls asleep
+[1518-05-25 00:50] falls asleep
+[1518-03-19 00:40] falls asleep
+[1518-06-10 00:55] falls asleep
+[1518-08-18 00:45] wakes up
+[1518-09-21 00:28] falls asleep
+[1518-11-12 00:46] falls asleep
+[1518-11-05 00:04] Guard #587 begins shift
+[1518-06-06 00:35] wakes up
+[1518-09-01 00:17] wakes up
+[1518-06-16 00:56] wakes up
+[1518-05-14 00:20] wakes up
+[1518-09-15 00:08] falls asleep
+[1518-01-19 00:03] Guard #1021 begins shift
+[1518-03-24 00:31] falls asleep
+[1518-02-10 00:05] falls asleep
+[1518-03-28 00:12] falls asleep
+[1518-08-12 00:47] wakes up
+[1518-10-05 00:23] wakes up
+[1518-02-06 00:03] Guard #971 begins shift
+[1518-06-24 00:48] wakes up
+[1518-03-06 00:57] wakes up
+[1518-05-21 00:57] wakes up
+[1518-04-17 00:51] wakes up
+[1518-04-07 00:19] falls asleep
+[1518-05-21 23:57] Guard #3257 begins shift
+[1518-11-09 00:52] falls asleep
+[1518-10-30 00:26] wakes up
+[1518-08-19 00:48] falls asleep
+[1518-11-01 00:49] wakes up
+[1518-06-11 00:56] wakes up
+[1518-05-22 23:59] Guard #1801 begins shift
+[1518-08-01 00:58] wakes up
+[1518-03-20 23:52] Guard #727 begins shift
+[1518-08-06 00:56] wakes up
+[1518-10-17 00:32] falls asleep
+[1518-09-09 00:57] falls asleep
+[1518-10-15 00:47] falls asleep
+[1518-03-13 23:52] Guard #1021 begins shift
+[1518-02-13 00:14] falls asleep
+[1518-03-02 00:03] Guard #157 begins shift
+[1518-08-29 00:16] wakes up
+[1518-01-30 00:57] wakes up
+[1518-11-03 00:51] wakes up
+[1518-02-11 00:45] wakes up
+[1518-09-23 00:59] wakes up
+[1518-06-07 00:40] wakes up
+[1518-08-13 00:30] wakes up
+[1518-06-26 00:01] Guard #1801 begins shift
+[1518-08-01 00:04] Guard #557 begins shift
+[1518-11-09 00:58] wakes up
+[1518-02-18 00:52] wakes up
+[1518-11-20 00:28] falls asleep
+[1518-07-25 00:21] falls asleep
+[1518-07-23 00:07] falls asleep
+[1518-09-19 00:03] falls asleep
+[1518-07-19 00:42] falls asleep
+[1518-08-06 00:03] falls asleep
+[1518-05-08 00:50] falls asleep
+[1518-10-01 00:44] wakes up
+[1518-06-27 00:27] falls asleep
+[1518-11-01 00:04] falls asleep
+[1518-04-30 00:01] Guard #1021 begins shift
+[1518-06-22 00:41] wakes up
+[1518-10-10 00:42] falls asleep
+[1518-08-30 00:04] falls asleep
+[1518-04-11 00:07] falls asleep
+[1518-08-15 00:52] falls asleep
+[1518-07-23 00:27] wakes up
+[1518-09-11 00:53] wakes up
+[1518-07-18 00:46] wakes up
+[1518-05-01 00:21] falls asleep
+[1518-10-03 00:57] wakes up
+[1518-10-25 00:00] Guard #971 begins shift
+[1518-04-19 00:01] Guard #1373 begins shift
+[1518-03-30 00:37] falls asleep
+[1518-06-06 23:46] Guard #2269 begins shift
+[1518-05-03 00:18] wakes up
+[1518-10-22 00:09] wakes up
+[1518-01-26 00:47] wakes up
+[1518-03-16 00:32] falls asleep
+[1518-02-20 00:03] falls asleep
+[1518-11-10 00:48] wakes up
+[1518-01-22 00:54] falls asleep
+[1518-09-15 00:15] wakes up
+[1518-03-18 00:00] Guard #571 begins shift
+[1518-06-18 00:55] wakes up
+[1518-04-08 00:25] wakes up
+[1518-03-25 00:31] falls asleep
+[1518-07-12 00:20] wakes up
+[1518-08-26 00:36] falls asleep
+[1518-10-07 00:57] wakes up
+[1518-11-06 00:51] wakes up
+[1518-05-29 00:59] wakes up
+[1518-08-03 23:49] Guard #157 begins shift
+[1518-11-12 00:38] wakes up
+[1518-08-02 23:57] Guard #2857 begins shift
+[1518-01-30 00:00] Guard #73 begins shift
+[1518-10-18 00:45] falls asleep
+[1518-11-21 00:16] wakes up
+[1518-04-30 23:58] Guard #331 begins shift
+[1518-07-04 00:19] falls asleep
+[1518-07-05 00:00] Guard #3257 begins shift
+[1518-05-30 00:50] wakes up
+[1518-08-19 00:13] wakes up
+[1518-06-10 00:15] falls asleep
+[1518-05-12 00:39] falls asleep
+[1518-04-07 00:39] wakes up
+[1518-03-27 00:52] wakes up
+[1518-05-02 00:04] falls asleep
+[1518-06-01 00:00] Guard #2267 begins shift
+[1518-08-04 00:04] falls asleep
+[1518-10-30 00:20] falls asleep
+[1518-07-16 23:57] Guard #3257 begins shift
+[1518-09-28 23:57] Guard #971 begins shift
+[1518-05-05 00:05] falls asleep
+[1518-10-02 00:40] falls asleep
+[1518-08-10 00:44] wakes up
+[1518-05-23 00:52] falls asleep
+[1518-06-28 00:21] falls asleep
+[1518-01-24 00:00] Guard #113 begins shift
+[1518-11-01 00:57] wakes up
+[1518-08-28 00:58] wakes up
+[1518-09-29 23:57] Guard #1801 begins shift
+[1518-10-11 00:45] falls asleep
+[1518-05-02 23:51] Guard #2083 begins shift
+[1518-09-10 23:58] Guard #2267 begins shift
+[1518-07-31 00:43] wakes up
+[1518-09-11 00:49] falls asleep
+[1518-01-22 00:36] wakes up
+[1518-09-08 00:13] wakes up
+[1518-06-30 00:59] wakes up
+[1518-04-27 00:55] wakes up
+[1518-02-01 00:03] Guard #73 begins shift
+[1518-02-20 23:56] Guard #157 begins shift
+[1518-08-27 00:35] falls asleep
+[1518-10-17 00:34] wakes up
+[1518-11-01 00:22] wakes up
+[1518-03-03 23:57] Guard #661 begins shift
+[1518-08-31 00:46] falls asleep
+[1518-07-05 23:50] Guard #557 begins shift
+[1518-02-04 00:32] wakes up
+[1518-03-26 00:37] wakes up
+[1518-03-26 00:47] falls asleep
+[1518-11-17 23:58] Guard #73 begins shift
+[1518-03-24 23:59] Guard #157 begins shift
+[1518-03-30 00:52] wakes up
+[1518-11-08 00:06] falls asleep
+[1518-04-16 23:57] Guard #2857 begins shift
+[1518-09-05 00:51] wakes up
+[1518-08-09 00:51] falls asleep
+[1518-10-31 00:48] wakes up
+[1518-05-08 00:42] wakes up
+[1518-11-13 23:58] Guard #157 begins shift
+[1518-11-07 23:58] Guard #103 begins shift
+[1518-08-23 00:31] wakes up
+[1518-07-08 00:47] wakes up
+[1518-06-07 00:03] falls asleep
+[1518-05-19 00:22] falls asleep
+[1518-11-15 00:53] wakes up
+[1518-09-14 00:54] wakes up
+[1518-10-10 00:00] Guard #971 begins shift
+[1518-06-11 00:00] Guard #2857 begins shift
+[1518-06-29 00:10] falls asleep
+[1518-09-01 00:06] falls asleep
+[1518-02-23 00:53] wakes up
+[1518-08-23 23:56] Guard #1801 begins shift
+[1518-06-25 00:53] falls asleep
+[1518-04-17 00:22] falls asleep
+[1518-08-28 00:42] wakes up
+[1518-01-31 00:58] wakes up
+[1518-04-24 00:15] falls asleep
+[1518-05-09 00:59] wakes up
+[1518-10-28 23:57] Guard #113 begins shift
+[1518-09-10 00:14] falls asleep
+[1518-04-02 00:00] Guard #1801 begins shift
+[1518-03-09 00:48] wakes up
+[1518-08-10 00:31] falls asleep
+[1518-02-08 00:36] falls asleep
+[1518-09-12 00:32] falls asleep
+[1518-05-20 00:05] falls asleep
+[1518-09-05 23:57] Guard #157 begins shift
+[1518-07-03 00:17] falls asleep
+[1518-07-24 00:00] falls asleep
+[1518-11-15 00:21] wakes up
+[1518-02-09 23:51] Guard #1021 begins shift
+[1518-11-18 00:10] falls asleep
+[1518-03-16 00:01] Guard #2269 begins shift
+[1518-04-05 00:59] wakes up
+[1518-08-12 00:44] falls asleep
+[1518-08-26 00:50] wakes up
+[1518-07-03 00:01] Guard #571 begins shift
+[1518-09-08 00:39] wakes up
+[1518-05-18 00:10] wakes up
+[1518-06-18 23:56] Guard #557 begins shift
+[1518-07-09 23:50] Guard #2083 begins shift
+[1518-06-09 00:56] wakes up
+[1518-11-10 00:58] wakes up
+[1518-09-28 00:10] falls asleep
+[1518-01-28 00:53] wakes up
+[1518-06-17 00:13] falls asleep
+[1518-04-27 00:45] falls asleep
+[1518-01-24 00:40] wakes up
+[1518-04-04 00:02] Guard #157 begins shift
+[1518-03-22 00:27] falls asleep
+[1518-10-07 23:57] Guard #971 begins shift
+[1518-02-04 00:50] wakes up
+[1518-06-01 00:18] falls asleep
+[1518-10-31 00:00] Guard #2269 begins shift
+[1518-09-24 00:53] wakes up
+[1518-10-01 00:50] falls asleep
+[1518-02-07 00:49] wakes up
+[1518-05-06 00:22] wakes up
+[1518-10-04 00:02] Guard #1021 begins shift
+[1518-04-26 23:57] Guard #2083 begins shift
+[1518-04-27 00:08] falls asleep
+[1518-05-17 00:05] falls asleep
+[1518-02-20 00:38] wakes up
+[1518-04-29 00:19] falls asleep
+[1518-10-24 00:02] Guard #1801 begins shift
+[1518-08-01 00:07] falls asleep
+[1518-10-13 00:54] wakes up
+[1518-02-21 00:52] wakes up
+[1518-05-19 00:59] wakes up
+[1518-05-14 00:00] Guard #587 begins shift
+[1518-11-14 00:39] falls asleep
+[1518-04-19 00:38] wakes up
+[1518-11-03 00:27] falls asleep
+[1518-04-21 00:53] wakes up
+[1518-05-08 00:06] falls asleep
+[1518-09-23 00:27] falls asleep
+[1518-06-07 00:16] wakes up
+[1518-01-20 00:00] Guard #331 begins shift
+[1518-08-21 00:22] falls asleep
+[1518-09-01 00:53] wakes up
+[1518-04-07 00:50] falls asleep
+[1518-03-27 00:10] falls asleep
+[1518-06-03 00:02] Guard #587 begins shift
+[1518-07-30 23:56] Guard #2083 begins shift
+[1518-09-13 00:53] wakes up
+[1518-09-12 00:42] wakes up
+[1518-09-25 00:00] Guard #2267 begins shift
+[1518-10-23 00:19] falls asleep
+[1518-04-06 23:57] Guard #587 begins shift
+[1518-07-20 00:01] falls asleep
+[1518-10-16 00:40] wakes up
+[1518-09-24 00:31] falls asleep
+[1518-02-02 00:36] falls asleep
+[1518-09-28 00:47] wakes up
+[1518-07-15 23:56] Guard #2857 begins shift
+[1518-10-03 00:00] Guard #331 begins shift
+[1518-02-26 00:53] wakes up
+[1518-01-22 00:58] wakes up
+[1518-04-11 00:00] Guard #661 begins shift
+[1518-06-20 00:18] falls asleep
+[1518-06-27 00:42] wakes up
+[1518-06-16 23:56] Guard #971 begins shift
+[1518-11-10 00:55] falls asleep
+[1518-03-01 00:38] wakes up
+[1518-11-02 00:34] falls asleep
+[1518-05-30 00:48] falls asleep
+[1518-05-09 23:56] Guard #2179 begins shift
+[1518-11-12 00:55] falls asleep
+[1518-03-31 00:52] wakes up
+[1518-05-18 00:07] falls asleep
+[1518-02-02 23:59] Guard #2179 begins shift
+[1518-06-29 00:47] falls asleep
+[1518-09-26 00:49] wakes up
+[1518-02-18 00:23] wakes up
+[1518-07-11 00:03] Guard #157 begins shift
+[1518-03-21 00:02] falls asleep
+[1518-11-22 00:13] falls asleep
+[1518-07-28 00:25] falls asleep
+[1518-11-14 00:54] wakes up
+[1518-10-02 00:00] Guard #3257 begins shift
+[1518-02-11 00:15] falls asleep
+[1518-03-26 00:53] wakes up
+[1518-07-23 00:11] wakes up
+[1518-08-04 00:44] wakes up
+[1518-11-07 00:03] Guard #571 begins shift
+[1518-01-20 00:49] falls asleep
+[1518-08-28 00:38] falls asleep
+[1518-02-04 00:38] falls asleep
+[1518-11-05 23:56] Guard #113 begins shift
+[1518-11-19 00:52] wakes up
+[1518-03-28 23:59] Guard #1801 begins shift
+[1518-04-24 00:36] falls asleep
+[1518-05-22 00:28] falls asleep
+[1518-11-21 00:00] falls asleep
+[1518-08-24 00:38] wakes up
+[1518-03-14 23:49] Guard #2083 begins shift
+[1518-06-26 00:44] wakes up
+[1518-06-20 00:56] wakes up
+[1518-08-12 00:01] Guard #2857 begins shift
+[1518-10-11 23:56] Guard #661 begins shift
+[1518-08-14 00:34] falls asleep
+[1518-05-08 00:59] wakes up
+[1518-08-26 23:57] Guard #2267 begins shift
+[1518-10-01 00:37] falls asleep
+[1518-02-17 00:55] wakes up
+[1518-04-23 00:57] wakes up
+[1518-03-10 00:07] falls asleep
+[1518-02-25 00:58] wakes up
+[1518-01-20 00:18] falls asleep
+[1518-11-05 00:29] falls asleep
+[1518-06-28 00:02] Guard #103 begins shift
+[1518-07-30 00:38] falls asleep
+[1518-03-14 00:06] wakes up
+[1518-07-17 00:19] falls asleep
+[1518-09-20 00:50] wakes up
+[1518-05-16 23:46] Guard #971 begins shift
+[1518-01-25 00:32] falls asleep
+[1518-09-14 00:04] Guard #3257 begins shift
+[1518-07-04 00:50] wakes up
+[1518-05-09 00:05] falls asleep
+[1518-02-26 00:13] falls asleep
+[1518-05-04 00:03] falls asleep
+[1518-04-28 00:54] wakes up
+[1518-06-11 23:57] Guard #2857 begins shift
+[1518-04-22 00:09] falls asleep
+[1518-05-01 00:58] wakes up
+[1518-09-17 23:59] Guard #113 begins shift
+[1518-06-21 00:49] falls asleep
+[1518-11-21 00:22] falls asleep
+[1518-06-17 23:57] Guard #661 begins shift
+[1518-03-31 00:35] wakes up
+[1518-03-26 00:34] falls asleep
+[1518-10-23 00:00] Guard #73 begins shift
+[1518-06-15 23:57] Guard #103 begins shift
+[1518-04-02 00:38] wakes up
+[1518-05-12 00:23] falls asleep
+[1518-11-20 00:50] wakes up
+[1518-04-08 23:57] Guard #727 begins shift
+[1518-10-23 00:53] wakes up
+[1518-08-24 00:15] falls asleep
+[1518-08-11 00:32] falls asleep
+[1518-06-15 00:02] Guard #157 begins shift
+[1518-10-14 00:11] falls asleep
+[1518-01-28 23:54] Guard #2269 begins shift
+[1518-09-06 00:56] wakes up
+[1518-08-31 00:34] wakes up
+[1518-06-06 00:25] falls asleep
+[1518-04-24 00:56] wakes up
+[1518-10-01 00:02] Guard #2269 begins shift
+[1518-02-23 23:59] Guard #1373 begins shift
+[1518-05-13 00:15] wakes up
+[1518-09-15 23:58] Guard #661 begins shift
+[1518-03-04 00:18] falls asleep
+[1518-04-29 00:03] Guard #113 begins shift
+[1518-06-16 00:29] falls asleep
+[1518-10-22 00:06] falls asleep
+[1518-08-19 00:53] wakes up
+[1518-02-01 00:32] wakes up
+[1518-08-08 00:02] falls asleep
+[1518-02-23 00:25] falls asleep
+[1518-03-16 00:57] falls asleep
+[1518-04-20 00:18] falls asleep
+[1518-05-27 00:01] Guard #103 begins shift
+[1518-04-04 00:59] wakes up
+[1518-05-06 00:25] falls asleep
+[1518-02-27 00:23] falls asleep
+[1518-07-24 00:45] wakes up
+[1518-07-19 23:46] Guard #2267 begins shift
+[1518-05-11 00:48] wakes up
+[1518-07-08 00:52] wakes up
+[1518-04-08 00:24] falls asleep
+[1518-06-24 00:21] falls asleep
+[1518-07-21 00:44] wakes up
+[1518-09-17 00:56] falls asleep
+[1518-03-12 00:57] wakes up
+[1518-06-26 00:50] falls asleep
+[1518-01-24 23:59] Guard #2857 begins shift
+[1518-10-16 00:20] falls asleep
+[1518-03-29 00:55] falls asleep
+[1518-07-21 00:47] falls asleep
+[1518-10-14 00:28] falls asleep
+[1518-05-15 00:00] Guard #73 begins shift
+[1518-10-29 00:46] wakes up
+[1518-04-08 00:39] falls asleep
+[1518-06-15 00:40] falls asleep
+[1518-07-08 00:51] falls asleep
+[1518-06-04 00:13] falls asleep
+[1518-05-01 00:53] falls asleep
+[1518-05-31 00:42] falls asleep
+[1518-08-30 00:21] wakes up

+ 9 - 0
D4.2/D04.2.csproj

@@ -0,0 +1,9 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <OutputType>Exe</OutputType>
+    <TargetFramework>netcoreapp2.1</TargetFramework>
+    <RootNamespace>D4._2</RootNamespace>
+  </PropertyGroup>
+
+</Project>

+ 83 - 0
D4.2/Program.cs

@@ -0,0 +1,83 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Text.RegularExpressions;
+
+namespace D4._2
+{
+    class Program
+    {
+        static void Main(string[] args)
+        {
+            if (args.Length < 1) return;
+            if (File.Exists(args[0]) == false) return;
+
+            var dic = new Dictionary<DateTime, string>();
+            var guard = new Dictionary<string, Dictionary<int, int>>();
+
+            var file = File.OpenText(args[0]);
+
+            var regex = new Regex(@"\[(.*)\]");
+
+            do
+            {
+                var line = file.ReadLine();
+                if (line == null) break;
+
+                var dateStr = line.Substring(0, 18).Trim('[', ']');
+                var date = DateTime.Parse(dateStr);
+
+                dic.Add(date, line.Substring(19, line.Length - 19));
+            } while (true);
+
+            var ordered = dic.OrderBy(kvp => kvp.Key);
+
+            string curGuard = string.Empty;
+            DateTime asleep = DateTime.Now;
+            foreach (var kvp in ordered)
+            {
+                var date = kvp.Key;
+                var str = kvp.Value;
+
+                if (str.StartsWith("Guard")) curGuard = str.Split(' ')[1];
+                {
+                    if (guard.ContainsKey(curGuard) == false)
+                    {
+                        var d = new Dictionary<int, int>();
+                        for (var i = 0; i < 60; i++) d.Add(i, 0);
+                        guard.Add(curGuard, d);
+                    }
+                }
+
+                if (str == "falls asleep")
+                {
+                    asleep = date;
+                }
+
+                if (str == "wakes up")
+                {
+                    for (int m = asleep.Minute; m < date.Minute; m++)
+                        guard[curGuard][m] += 1;
+                }
+            }
+
+            KeyValuePair<int, int> highestMinute = new KeyValuePair<int, int>(0, 0);
+            string sleeper = "";
+            foreach (var g in guard)
+            {
+                var minute = g.Value.OrderByDescending(v => v.Value).FirstOrDefault();
+
+                if (minute.Value > highestMinute.Value)
+                {
+                    highestMinute = minute;
+                    sleeper = g.Key;
+                }
+            }
+            
+            Console.WriteLine($"Guard {sleeper} sleeps {highestMinute.Value} times on {highestMinute.Key}th minute");
+            var id = int.Parse(sleeper.TrimStart('#'));
+            Console.WriteLine($"Answer : {id * highestMinute.Key}");
+        }
+    }
+}

+ 8 - 0
D4.2/Properties/launchSettings.json

@@ -0,0 +1,8 @@
+{
+  "profiles": {
+    "D04.2": {
+      "commandName": "Project",
+      "commandLineArgs": "\"D:\\adv\\Adv2018\\D4.2\\input.txt\""
+    }
+  }
+}

+ 1159 - 0
D4.2/input.txt

@@ -0,0 +1,1159 @@
+[1518-07-18 23:57] Guard #157 begins shift
+[1518-04-18 00:44] wakes up
+[1518-10-26 00:20] falls asleep
+[1518-10-12 00:32] falls asleep
+[1518-04-12 00:03] Guard #2857 begins shift
+[1518-08-14 23:52] Guard #331 begins shift
+[1518-05-19 00:01] Guard #1801 begins shift
+[1518-09-22 00:52] wakes up
+[1518-07-03 00:32] wakes up
+[1518-11-08 00:40] falls asleep
+[1518-01-23 00:19] falls asleep
+[1518-05-03 00:43] wakes up
+[1518-07-04 00:54] wakes up
+[1518-06-18 00:20] falls asleep
+[1518-11-11 23:57] Guard #571 begins shift
+[1518-11-11 00:51] wakes up
+[1518-06-25 00:55] wakes up
+[1518-05-20 00:47] falls asleep
+[1518-07-07 23:50] Guard #2269 begins shift
+[1518-05-19 00:57] falls asleep
+[1518-07-16 00:30] wakes up
+[1518-04-05 23:46] Guard #1511 begins shift
+[1518-05-18 00:31] falls asleep
+[1518-08-07 00:25] falls asleep
+[1518-10-20 00:49] wakes up
+[1518-01-23 00:02] Guard #661 begins shift
+[1518-02-12 00:50] wakes up
+[1518-08-27 00:58] wakes up
+[1518-09-13 00:37] wakes up
+[1518-08-17 23:58] Guard #1801 begins shift
+[1518-10-04 00:16] falls asleep
+[1518-04-01 00:57] wakes up
+[1518-04-03 00:40] falls asleep
+[1518-02-04 00:20] falls asleep
+[1518-01-29 00:03] falls asleep
+[1518-04-17 00:32] wakes up
+[1518-09-08 00:22] falls asleep
+[1518-10-09 00:49] wakes up
+[1518-09-18 23:50] Guard #571 begins shift
+[1518-08-29 00:10] falls asleep
+[1518-09-09 00:01] Guard #971 begins shift
+[1518-03-25 00:51] falls asleep
+[1518-03-11 00:07] falls asleep
+[1518-02-01 00:53] wakes up
+[1518-02-22 00:50] wakes up
+[1518-02-11 23:57] Guard #661 begins shift
+[1518-04-09 00:30] falls asleep
+[1518-05-06 00:16] falls asleep
+[1518-09-29 00:18] falls asleep
+[1518-05-15 00:28] wakes up
+[1518-05-17 00:10] falls asleep
+[1518-07-01 00:44] wakes up
+[1518-02-12 00:30] falls asleep
+[1518-04-27 23:58] Guard #3257 begins shift
+[1518-10-21 00:55] wakes up
+[1518-02-07 00:10] wakes up
+[1518-08-26 00:53] falls asleep
+[1518-02-25 23:58] Guard #557 begins shift
+[1518-09-16 00:53] wakes up
+[1518-07-27 00:52] wakes up
+[1518-04-23 00:45] falls asleep
+[1518-03-24 00:03] Guard #157 begins shift
+[1518-06-09 00:44] wakes up
+[1518-10-10 00:47] wakes up
+[1518-07-13 23:58] Guard #727 begins shift
+[1518-06-12 00:31] wakes up
+[1518-04-21 00:16] falls asleep
+[1518-06-05 00:02] Guard #1733 begins shift
+[1518-11-05 00:49] wakes up
+[1518-03-09 00:23] falls asleep
+[1518-03-25 23:56] Guard #727 begins shift
+[1518-06-19 00:11] falls asleep
+[1518-05-13 00:08] falls asleep
+[1518-09-04 00:32] falls asleep
+[1518-02-27 00:45] falls asleep
+[1518-04-09 00:56] wakes up
+[1518-10-14 00:24] wakes up
+[1518-08-13 00:00] Guard #2269 begins shift
+[1518-09-15 00:01] Guard #2269 begins shift
+[1518-09-27 00:48] wakes up
+[1518-01-20 00:31] wakes up
+[1518-08-16 00:01] Guard #1733 begins shift
+[1518-06-01 00:51] wakes up
+[1518-04-25 00:28] falls asleep
+[1518-03-25 00:48] wakes up
+[1518-06-29 00:52] wakes up
+[1518-06-23 00:19] falls asleep
+[1518-02-08 23:59] Guard #557 begins shift
+[1518-05-28 23:48] Guard #113 begins shift
+[1518-07-06 00:05] wakes up
+[1518-08-07 23:49] Guard #1373 begins shift
+[1518-09-13 00:00] Guard #587 begins shift
+[1518-07-21 23:57] Guard #727 begins shift
+[1518-11-07 00:25] falls asleep
+[1518-04-13 00:04] Guard #661 begins shift
+[1518-09-07 00:52] wakes up
+[1518-10-20 00:44] falls asleep
+[1518-02-08 00:00] Guard #587 begins shift
+[1518-03-18 00:35] falls asleep
+[1518-07-26 00:47] wakes up
+[1518-06-22 00:10] falls asleep
+[1518-08-13 00:25] falls asleep
+[1518-05-16 00:09] falls asleep
+[1518-04-03 00:52] wakes up
+[1518-08-19 00:02] Guard #103 begins shift
+[1518-01-27 00:04] Guard #2267 begins shift
+[1518-05-05 00:54] wakes up
+[1518-08-01 23:47] Guard #571 begins shift
+[1518-02-24 00:24] falls asleep
+[1518-02-19 00:48] wakes up
+[1518-05-25 00:55] wakes up
+[1518-10-31 00:51] falls asleep
+[1518-10-31 00:16] falls asleep
+[1518-03-28 00:19] wakes up
+[1518-08-02 00:10] wakes up
+[1518-11-23 00:16] falls asleep
+[1518-09-17 00:00] Guard #1021 begins shift
+[1518-07-13 00:48] wakes up
+[1518-10-01 00:56] wakes up
+[1518-05-03 23:51] Guard #113 begins shift
+[1518-06-28 00:39] wakes up
+[1518-10-26 00:37] falls asleep
+[1518-08-03 00:45] falls asleep
+[1518-01-27 00:25] wakes up
+[1518-09-18 00:17] falls asleep
+[1518-07-05 00:40] falls asleep
+[1518-08-17 00:54] falls asleep
+[1518-09-30 00:51] wakes up
+[1518-05-07 00:28] falls asleep
+[1518-11-01 00:46] falls asleep
+[1518-07-02 00:18] falls asleep
+[1518-09-09 00:50] wakes up
+[1518-03-02 00:31] falls asleep
+[1518-03-11 00:01] Guard #2083 begins shift
+[1518-03-12 00:19] falls asleep
+[1518-08-19 00:12] falls asleep
+[1518-05-14 00:42] falls asleep
+[1518-05-28 00:15] falls asleep
+[1518-09-24 00:56] falls asleep
+[1518-05-11 00:43] falls asleep
+[1518-05-06 00:45] wakes up
+[1518-03-05 23:56] Guard #727 begins shift
+[1518-01-21 00:06] falls asleep
+[1518-08-28 00:13] falls asleep
+[1518-05-02 00:34] wakes up
+[1518-06-07 00:46] falls asleep
+[1518-01-28 00:13] falls asleep
+[1518-07-28 00:00] Guard #571 begins shift
+[1518-02-11 00:50] falls asleep
+[1518-03-03 00:55] wakes up
+[1518-10-06 00:36] falls asleep
+[1518-08-17 00:57] wakes up
+[1518-04-22 00:04] Guard #2857 begins shift
+[1518-08-21 23:59] Guard #557 begins shift
+[1518-09-26 00:01] Guard #2267 begins shift
+[1518-10-04 23:59] Guard #661 begins shift
+[1518-07-25 00:36] wakes up
+[1518-11-09 00:47] wakes up
+[1518-05-31 00:04] Guard #331 begins shift
+[1518-07-30 00:00] Guard #727 begins shift
+[1518-08-05 00:59] wakes up
+[1518-08-28 00:03] Guard #571 begins shift
+[1518-07-23 00:36] falls asleep
+[1518-04-23 00:00] Guard #557 begins shift
+[1518-05-18 00:59] wakes up
+[1518-09-26 00:37] falls asleep
+[1518-05-26 00:04] Guard #331 begins shift
+[1518-08-27 00:49] wakes up
+[1518-01-25 00:57] falls asleep
+[1518-08-22 00:11] falls asleep
+[1518-08-04 23:58] Guard #331 begins shift
+[1518-07-10 00:05] falls asleep
+[1518-08-14 00:55] wakes up
+[1518-02-27 00:42] wakes up
+[1518-02-28 00:00] Guard #557 begins shift
+[1518-02-19 00:51] falls asleep
+[1518-07-21 00:56] wakes up
+[1518-04-03 00:01] falls asleep
+[1518-07-09 00:40] wakes up
+[1518-02-06 23:48] Guard #1373 begins shift
+[1518-05-15 00:13] falls asleep
+[1518-11-13 00:04] Guard #2179 begins shift
+[1518-03-06 00:31] falls asleep
+[1518-07-01 23:56] Guard #73 begins shift
+[1518-06-13 00:39] falls asleep
+[1518-08-22 23:57] Guard #1021 begins shift
+[1518-07-17 00:58] wakes up
+[1518-04-12 00:14] falls asleep
+[1518-06-29 23:58] Guard #331 begins shift
+[1518-05-13 00:52] wakes up
+[1518-09-04 23:56] Guard #587 begins shift
+[1518-09-19 00:44] wakes up
+[1518-07-26 00:00] Guard #661 begins shift
+[1518-10-29 00:31] falls asleep
+[1518-08-16 23:56] Guard #661 begins shift
+[1518-10-07 00:48] wakes up
+[1518-03-30 00:00] Guard #2269 begins shift
+[1518-06-05 23:58] Guard #571 begins shift
+[1518-08-28 00:57] falls asleep
+[1518-05-11 00:57] falls asleep
+[1518-04-20 00:50] wakes up
+[1518-05-27 00:08] falls asleep
+[1518-08-29 00:50] falls asleep
+[1518-05-23 00:57] wakes up
+[1518-04-30 00:58] wakes up
+[1518-10-18 00:50] wakes up
+[1518-06-21 00:19] falls asleep
+[1518-04-12 00:46] wakes up
+[1518-03-21 00:47] wakes up
+[1518-05-03 00:01] falls asleep
+[1518-06-14 00:02] Guard #1511 begins shift
+[1518-04-03 00:32] wakes up
+[1518-08-07 00:53] wakes up
+[1518-10-15 00:01] Guard #2083 begins shift
+[1518-10-25 00:45] falls asleep
+[1518-10-27 00:33] falls asleep
+[1518-08-08 00:39] wakes up
+[1518-09-30 00:20] falls asleep
+[1518-10-27 00:59] wakes up
+[1518-10-26 00:46] wakes up
+[1518-07-10 00:43] wakes up
+[1518-04-15 00:25] falls asleep
+[1518-05-24 00:32] falls asleep
+[1518-07-20 00:57] wakes up
+[1518-03-25 00:59] wakes up
+[1518-03-24 00:48] wakes up
+[1518-02-12 00:49] falls asleep
+[1518-09-05 00:09] falls asleep
+[1518-02-25 00:25] falls asleep
+[1518-01-25 00:58] wakes up
+[1518-02-01 23:58] Guard #2269 begins shift
+[1518-04-23 00:55] falls asleep
+[1518-01-19 00:55] wakes up
+[1518-05-29 00:19] falls asleep
+[1518-07-04 00:53] falls asleep
+[1518-09-23 00:00] Guard #73 begins shift
+[1518-08-09 00:02] Guard #73 begins shift
+[1518-09-17 00:59] wakes up
+[1518-03-19 23:56] Guard #73 begins shift
+[1518-09-28 00:55] wakes up
+[1518-11-08 00:37] wakes up
+[1518-10-30 00:00] Guard #661 begins shift
+[1518-11-16 00:43] wakes up
+[1518-02-19 00:03] Guard #727 begins shift
+[1518-07-11 00:43] falls asleep
+[1518-11-21 23:56] Guard #157 begins shift
+[1518-03-20 00:08] falls asleep
+[1518-03-16 00:48] falls asleep
+[1518-10-31 23:48] Guard #73 begins shift
+[1518-07-03 00:55] wakes up
+[1518-07-29 00:04] falls asleep
+[1518-10-03 00:34] falls asleep
+[1518-02-19 23:47] Guard #2857 begins shift
+[1518-08-28 00:31] wakes up
+[1518-04-17 00:40] falls asleep
+[1518-03-15 00:04] falls asleep
+[1518-11-19 00:09] falls asleep
+[1518-04-18 00:56] wakes up
+[1518-03-04 23:57] Guard #2179 begins shift
+[1518-02-17 00:36] falls asleep
+[1518-04-10 00:40] wakes up
+[1518-02-25 00:43] falls asleep
+[1518-02-25 00:50] falls asleep
+[1518-05-21 00:04] Guard #157 begins shift
+[1518-08-10 00:53] wakes up
+[1518-06-01 00:47] falls asleep
+[1518-10-26 00:26] wakes up
+[1518-10-02 00:16] wakes up
+[1518-08-25 00:24] falls asleep
+[1518-05-03 00:53] wakes up
+[1518-11-07 00:47] wakes up
+[1518-11-23 00:02] Guard #2083 begins shift
+[1518-10-11 00:40] wakes up
+[1518-09-06 00:33] falls asleep
+[1518-11-07 00:33] falls asleep
+[1518-10-05 00:14] falls asleep
+[1518-10-24 00:12] falls asleep
+[1518-09-09 00:45] falls asleep
+[1518-10-26 00:00] Guard #2857 begins shift
+[1518-10-16 23:58] Guard #3257 begins shift
+[1518-07-08 00:37] wakes up
+[1518-10-06 00:05] falls asleep
+[1518-08-25 00:39] wakes up
+[1518-03-17 00:58] wakes up
+[1518-01-21 23:57] Guard #557 begins shift
+[1518-10-25 00:47] wakes up
+[1518-10-14 00:33] wakes up
+[1518-03-20 00:49] wakes up
+[1518-02-17 00:37] wakes up
+[1518-08-27 00:57] falls asleep
+[1518-09-10 00:01] Guard #331 begins shift
+[1518-05-18 00:36] wakes up
+[1518-06-27 00:03] Guard #2083 begins shift
+[1518-02-12 00:36] wakes up
+[1518-11-04 00:47] wakes up
+[1518-06-11 00:31] falls asleep
+[1518-04-11 00:57] wakes up
+[1518-06-19 00:50] wakes up
+[1518-11-11 00:43] falls asleep
+[1518-05-27 00:59] wakes up
+[1518-03-07 00:43] wakes up
+[1518-05-20 00:23] wakes up
+[1518-08-06 23:59] Guard #331 begins shift
+[1518-02-05 00:24] falls asleep
+[1518-03-02 23:52] Guard #3257 begins shift
+[1518-01-29 00:23] wakes up
+[1518-10-10 00:50] falls asleep
+[1518-11-10 00:00] Guard #1021 begins shift
+[1518-07-12 00:26] falls asleep
+[1518-02-07 00:04] falls asleep
+[1518-08-10 00:47] falls asleep
+[1518-11-21 00:31] wakes up
+[1518-05-17 00:07] wakes up
+[1518-08-10 00:02] Guard #2269 begins shift
+[1518-11-19 00:36] wakes up
+[1518-03-14 00:57] wakes up
+[1518-09-24 00:00] Guard #1801 begins shift
+[1518-10-04 00:48] wakes up
+[1518-07-30 00:59] wakes up
+[1518-10-21 00:54] falls asleep
+[1518-07-07 00:35] falls asleep
+[1518-05-12 00:25] wakes up
+[1518-04-12 00:17] wakes up
+[1518-08-25 00:53] wakes up
+[1518-11-12 00:49] wakes up
+[1518-03-31 00:25] falls asleep
+[1518-05-28 00:03] Guard #727 begins shift
+[1518-08-25 00:02] Guard #1021 begins shift
+[1518-06-23 00:45] wakes up
+[1518-06-04 00:43] wakes up
+[1518-07-18 00:02] Guard #727 begins shift
+[1518-05-24 00:50] wakes up
+[1518-04-25 00:38] wakes up
+[1518-07-12 00:15] falls asleep
+[1518-01-21 00:45] wakes up
+[1518-08-02 00:02] falls asleep
+[1518-09-10 00:51] falls asleep
+[1518-06-08 23:58] Guard #2857 begins shift
+[1518-01-27 00:12] falls asleep
+[1518-09-07 23:52] Guard #157 begins shift
+[1518-08-03 00:59] wakes up
+[1518-09-05 00:12] wakes up
+[1518-09-25 00:47] wakes up
+[1518-09-02 00:08] falls asleep
+[1518-10-07 00:53] falls asleep
+[1518-02-25 00:37] wakes up
+[1518-08-12 00:09] falls asleep
+[1518-11-02 00:53] wakes up
+[1518-10-31 00:53] wakes up
+[1518-07-31 00:32] falls asleep
+[1518-02-27 00:49] wakes up
+[1518-10-11 00:02] Guard #1801 begins shift
+[1518-07-23 00:26] falls asleep
+[1518-02-06 00:46] wakes up
+[1518-02-18 00:10] falls asleep
+[1518-02-28 23:58] Guard #2083 begins shift
+[1518-06-25 00:00] Guard #971 begins shift
+[1518-02-16 00:05] falls asleep
+[1518-03-12 00:51] falls asleep
+[1518-08-21 00:48] wakes up
+[1518-03-16 00:49] wakes up
+[1518-10-19 00:00] Guard #1733 begins shift
+[1518-07-22 23:59] Guard #2267 begins shift
+[1518-02-24 00:56] wakes up
+[1518-03-27 00:03] Guard #661 begins shift
+[1518-11-01 00:56] falls asleep
+[1518-02-18 00:00] Guard #103 begins shift
+[1518-04-23 00:52] wakes up
+[1518-11-16 00:02] Guard #571 begins shift
+[1518-10-31 00:32] wakes up
+[1518-01-23 00:45] wakes up
+[1518-08-12 00:16] wakes up
+[1518-02-13 23:59] Guard #2269 begins shift
+[1518-09-24 00:58] wakes up
+[1518-09-22 00:46] falls asleep
+[1518-09-02 00:33] wakes up
+[1518-08-25 00:51] falls asleep
+[1518-04-25 00:04] Guard #557 begins shift
+[1518-07-05 00:59] wakes up
+[1518-06-15 00:45] wakes up
+[1518-09-10 00:59] wakes up
+[1518-08-31 00:17] falls asleep
+[1518-07-12 23:58] Guard #113 begins shift
+[1518-08-15 00:53] wakes up
+[1518-05-11 00:59] wakes up
+[1518-07-07 00:30] falls asleep
+[1518-04-11 00:40] falls asleep
+[1518-09-01 00:44] falls asleep
+[1518-02-21 00:32] falls asleep
+[1518-03-11 23:57] Guard #557 begins shift
+[1518-05-13 00:34] falls asleep
+[1518-04-15 00:50] wakes up
+[1518-10-06 00:59] wakes up
+[1518-04-04 23:56] Guard #3257 begins shift
+[1518-10-20 00:01] Guard #2267 begins shift
+[1518-02-06 00:41] falls asleep
+[1518-07-14 23:59] Guard #157 begins shift
+[1518-11-07 00:26] wakes up
+[1518-05-20 00:51] wakes up
+[1518-10-08 00:47] wakes up
+[1518-10-11 00:52] wakes up
+[1518-08-09 00:52] wakes up
+[1518-03-16 00:58] wakes up
+[1518-04-25 23:57] Guard #281 begins shift
+[1518-05-31 00:55] wakes up
+[1518-06-09 00:13] falls asleep
+[1518-09-19 23:58] Guard #971 begins shift
+[1518-04-07 00:57] wakes up
+[1518-01-19 00:19] falls asleep
+[1518-05-03 00:52] falls asleep
+[1518-11-03 23:57] Guard #2083 begins shift
+[1518-05-26 00:56] wakes up
+[1518-03-14 00:04] falls asleep
+[1518-07-01 00:02] Guard #103 begins shift
+[1518-07-07 00:08] falls asleep
+[1518-05-06 00:01] Guard #661 begins shift
+[1518-04-19 00:11] falls asleep
+[1518-03-17 00:57] falls asleep
+[1518-08-26 00:57] wakes up
+[1518-07-06 00:04] falls asleep
+[1518-02-08 00:48] wakes up
+[1518-04-12 00:26] falls asleep
+[1518-08-26 00:01] Guard #331 begins shift
+[1518-04-15 00:02] Guard #157 begins shift
+[1518-06-10 00:25] wakes up
+[1518-10-10 00:55] wakes up
+[1518-05-04 00:34] wakes up
+[1518-11-20 00:54] falls asleep
+[1518-05-22 00:53] wakes up
+[1518-09-03 00:18] falls asleep
+[1518-07-03 23:57] Guard #2267 begins shift
+[1518-09-03 00:45] wakes up
+[1518-02-14 00:56] wakes up
+[1518-06-03 23:57] Guard #587 begins shift
+[1518-02-14 23:53] Guard #2083 begins shift
+[1518-11-06 00:26] falls asleep
+[1518-06-09 00:55] falls asleep
+[1518-07-11 00:55] wakes up
+[1518-04-17 23:56] Guard #331 begins shift
+[1518-08-22 00:47] wakes up
+[1518-07-29 00:48] falls asleep
+[1518-04-28 00:42] falls asleep
+[1518-11-02 23:56] Guard #3257 begins shift
+[1518-08-31 00:00] Guard #661 begins shift
+[1518-04-13 00:53] wakes up
+[1518-03-03 00:05] falls asleep
+[1518-04-01 00:36] falls asleep
+[1518-03-10 00:45] wakes up
+[1518-06-20 23:58] Guard #103 begins shift
+[1518-04-30 00:06] falls asleep
+[1518-05-21 00:44] falls asleep
+[1518-07-27 00:43] falls asleep
+[1518-07-07 00:47] wakes up
+[1518-02-23 00:01] Guard #661 begins shift
+[1518-07-29 00:45] wakes up
+[1518-05-28 00:58] wakes up
+[1518-05-12 00:55] wakes up
+[1518-07-28 23:50] Guard #73 begins shift
+[1518-06-03 00:51] wakes up
+[1518-02-25 00:03] Guard #331 begins shift
+[1518-09-11 23:59] Guard #103 begins shift
+[1518-06-17 00:52] wakes up
+[1518-04-18 00:23] falls asleep
+[1518-04-06 00:51] wakes up
+[1518-08-23 00:20] falls asleep
+[1518-09-21 00:00] Guard #571 begins shift
+[1518-06-26 00:57] wakes up
+[1518-02-13 00:58] wakes up
+[1518-09-13 00:22] falls asleep
+[1518-02-17 00:00] Guard #661 begins shift
+[1518-05-26 00:49] falls asleep
+[1518-02-09 00:59] wakes up
+[1518-08-21 00:00] Guard #571 begins shift
+[1518-10-20 23:59] Guard #157 begins shift
+[1518-05-19 00:29] wakes up
+[1518-08-14 00:42] wakes up
+[1518-05-04 23:50] Guard #2857 begins shift
+[1518-05-29 23:58] Guard #2267 begins shift
+[1518-09-05 00:29] falls asleep
+[1518-10-13 00:33] falls asleep
+[1518-05-21 00:30] wakes up
+[1518-02-15 00:47] wakes up
+[1518-03-11 00:52] wakes up
+[1518-04-21 00:01] Guard #1511 begins shift
+[1518-06-14 00:35] wakes up
+[1518-09-07 00:27] falls asleep
+[1518-09-14 00:11] falls asleep
+[1518-06-02 00:01] Guard #2179 begins shift
+[1518-10-17 23:58] Guard #73 begins shift
+[1518-07-07 00:01] Guard #557 begins shift
+[1518-10-03 00:56] falls asleep
+[1518-02-25 00:44] wakes up
+[1518-11-09 00:28] falls asleep
+[1518-06-23 00:00] Guard #971 begins shift
+[1518-10-13 23:58] Guard #557 begins shift
+[1518-01-30 23:59] Guard #1511 begins shift
+[1518-04-20 00:04] Guard #2083 begins shift
+[1518-05-16 00:55] wakes up
+[1518-06-28 23:56] Guard #331 begins shift
+[1518-10-24 00:29] wakes up
+[1518-04-10 00:38] falls asleep
+[1518-06-14 00:20] falls asleep
+[1518-05-17 00:20] wakes up
+[1518-09-21 23:58] Guard #2267 begins shift
+[1518-05-14 00:48] wakes up
+[1518-03-16 23:58] Guard #557 begins shift
+[1518-07-09 00:28] falls asleep
+[1518-11-22 00:44] wakes up
+[1518-01-31 00:39] falls asleep
+[1518-02-10 23:59] Guard #2857 begins shift
+[1518-06-10 00:57] wakes up
+[1518-07-23 23:50] Guard #2083 begins shift
+[1518-04-14 00:04] Guard #281 begins shift
+[1518-08-19 00:27] falls asleep
+[1518-01-22 00:27] falls asleep
+[1518-04-24 00:02] Guard #1373 begins shift
+[1518-02-07 00:39] falls asleep
+[1518-10-22 00:03] Guard #2857 begins shift
+[1518-11-12 00:36] falls asleep
+[1518-02-27 00:04] Guard #971 begins shift
+[1518-10-27 00:42] wakes up
+[1518-03-12 00:35] wakes up
+[1518-02-19 00:55] wakes up
+[1518-11-14 23:58] Guard #557 begins shift
+[1518-07-01 00:14] falls asleep
+[1518-05-07 00:40] wakes up
+[1518-07-02 00:30] wakes up
+[1518-08-20 00:54] wakes up
+[1518-03-29 00:58] wakes up
+[1518-09-04 00:00] Guard #113 begins shift
+[1518-09-20 00:31] falls asleep
+[1518-05-29 00:15] wakes up
+[1518-05-01 00:49] wakes up
+[1518-04-09 00:42] wakes up
+[1518-06-13 00:35] wakes up
+[1518-02-02 00:57] wakes up
+[1518-04-27 00:37] wakes up
+[1518-10-23 00:34] wakes up
+[1518-06-07 23:59] Guard #727 begins shift
+[1518-09-27 00:23] falls asleep
+[1518-10-06 00:24] wakes up
+[1518-06-28 00:45] falls asleep
+[1518-07-22 00:36] falls asleep
+[1518-04-11 00:31] wakes up
+[1518-04-08 00:47] wakes up
+[1518-11-20 00:59] wakes up
+[1518-01-20 00:55] wakes up
+[1518-02-17 00:50] falls asleep
+[1518-04-24 00:16] wakes up
+[1518-10-22 00:30] falls asleep
+[1518-05-08 23:51] Guard #103 begins shift
+[1518-09-03 00:04] Guard #727 begins shift
+[1518-08-29 23:50] Guard #2269 begins shift
+[1518-06-08 00:21] falls asleep
+[1518-08-15 00:47] wakes up
+[1518-06-30 00:26] falls asleep
+[1518-03-04 00:35] wakes up
+[1518-01-28 00:02] Guard #331 begins shift
+[1518-06-24 00:04] Guard #113 begins shift
+[1518-03-19 00:42] wakes up
+[1518-04-04 00:41] falls asleep
+[1518-07-29 00:51] wakes up
+[1518-10-11 00:11] falls asleep
+[1518-03-18 00:57] wakes up
+[1518-10-08 00:42] falls asleep
+[1518-07-27 00:00] Guard #2269 begins shift
+[1518-04-22 00:35] wakes up
+[1518-03-30 23:59] Guard #971 begins shift
+[1518-09-09 00:58] wakes up
+[1518-03-06 23:59] Guard #1801 begins shift
+[1518-05-18 00:42] falls asleep
+[1518-02-01 00:24] falls asleep
+[1518-04-29 00:57] wakes up
+[1518-09-27 23:59] Guard #2083 begins shift
+[1518-07-18 00:31] falls asleep
+[1518-09-06 23:58] Guard #157 begins shift
+[1518-03-16 00:38] wakes up
+[1518-10-07 00:28] falls asleep
+[1518-09-10 00:22] wakes up
+[1518-08-14 00:01] Guard #157 begins shift
+[1518-07-16 00:18] falls asleep
+[1518-06-21 00:58] wakes up
+[1518-04-06 00:05] falls asleep
+[1518-02-14 00:31] falls asleep
+[1518-09-08 00:47] falls asleep
+[1518-06-07 00:37] falls asleep
+[1518-03-28 00:00] Guard #587 begins shift
+[1518-03-10 00:03] Guard #157 begins shift
+[1518-11-17 00:06] falls asleep
+[1518-11-10 00:23] falls asleep
+[1518-09-13 00:48] falls asleep
+[1518-10-28 00:30] falls asleep
+[1518-04-18 00:52] falls asleep
+[1518-02-22 00:34] falls asleep
+[1518-05-03 00:22] falls asleep
+[1518-06-25 00:49] wakes up
+[1518-06-01 00:29] wakes up
+[1518-10-06 23:58] Guard #157 begins shift
+[1518-11-08 00:49] wakes up
+[1518-09-21 00:47] wakes up
+[1518-08-29 00:56] wakes up
+[1518-08-31 23:59] Guard #1801 begins shift
+[1518-02-11 00:53] wakes up
+[1518-05-11 23:56] Guard #1373 begins shift
+[1518-07-07 00:09] wakes up
+[1518-09-28 00:51] falls asleep
+[1518-07-15 00:46] falls asleep
+[1518-08-05 00:42] falls asleep
+[1518-07-21 00:36] falls asleep
+[1518-11-09 00:00] Guard #1801 begins shift
+[1518-11-23 00:37] wakes up
+[1518-09-16 00:09] falls asleep
+[1518-02-28 00:14] falls asleep
+[1518-06-13 00:28] falls asleep
+[1518-06-07 00:57] wakes up
+[1518-05-11 00:00] Guard #971 begins shift
+[1518-01-24 00:32] falls asleep
+[1518-02-15 00:03] falls asleep
+[1518-11-19 00:47] falls asleep
+[1518-07-26 00:08] falls asleep
+[1518-03-21 23:48] Guard #661 begins shift
+[1518-07-08 00:44] falls asleep
+[1518-04-16 00:18] falls asleep
+[1518-08-14 00:49] falls asleep
+[1518-07-28 00:36] wakes up
+[1518-07-14 00:59] wakes up
+[1518-07-14 00:41] falls asleep
+[1518-07-21 00:01] Guard #1021 begins shift
+[1518-06-26 00:38] falls asleep
+[1518-09-08 00:57] wakes up
+[1518-01-20 23:56] Guard #3257 begins shift
+[1518-01-26 00:04] Guard #661 begins shift
+[1518-03-12 23:59] Guard #1733 begins shift
+[1518-06-08 00:54] wakes up
+[1518-07-04 00:12] falls asleep
+[1518-06-21 00:31] wakes up
+[1518-04-02 23:47] Guard #103 begins shift
+[1518-10-12 00:58] wakes up
+[1518-10-16 00:02] Guard #2857 begins shift
+[1518-02-13 00:38] wakes up
+[1518-03-22 00:04] falls asleep
+[1518-01-30 00:07] falls asleep
+[1518-09-23 00:30] wakes up
+[1518-09-02 00:03] Guard #587 begins shift
+[1518-08-05 23:49] Guard #2857 begins shift
+[1518-11-17 00:00] Guard #661 begins shift
+[1518-10-02 00:07] falls asleep
+[1518-07-08 00:03] falls asleep
+[1518-04-02 00:27] falls asleep
+[1518-09-04 00:34] wakes up
+[1518-07-08 23:56] Guard #2083 begins shift
+[1518-06-22 00:01] Guard #587 begins shift
+[1518-05-17 00:30] falls asleep
+[1518-05-18 00:01] Guard #1801 begins shift
+[1518-02-19 00:33] falls asleep
+[1518-07-19 00:51] wakes up
+[1518-01-26 00:16] falls asleep
+[1518-04-10 00:02] Guard #1021 begins shift
+[1518-10-27 23:57] Guard #3257 begins shift
+[1518-04-01 00:03] Guard #587 begins shift
+[1518-06-12 23:56] Guard #113 begins shift
+[1518-03-29 00:06] falls asleep
+[1518-11-16 00:23] falls asleep
+[1518-05-24 23:58] Guard #1801 begins shift
+[1518-06-29 00:34] wakes up
+[1518-04-09 00:55] falls asleep
+[1518-03-31 00:38] falls asleep
+[1518-11-12 00:58] wakes up
+[1518-09-08 00:04] falls asleep
+[1518-05-16 00:04] Guard #557 begins shift
+[1518-03-15 00:47] wakes up
+[1518-10-31 00:45] falls asleep
+[1518-03-02 00:57] wakes up
+[1518-10-27 00:54] falls asleep
+[1518-10-05 23:48] Guard #971 begins shift
+[1518-02-13 00:41] falls asleep
+[1518-08-11 00:43] wakes up
+[1518-11-15 00:06] falls asleep
+[1518-05-14 00:36] wakes up
+[1518-09-25 00:41] falls asleep
+[1518-09-14 00:53] falls asleep
+[1518-08-09 00:17] wakes up
+[1518-07-23 00:58] wakes up
+[1518-03-01 00:30] falls asleep
+[1518-11-18 00:28] wakes up
+[1518-06-25 00:44] falls asleep
+[1518-05-19 23:49] Guard #2267 begins shift
+[1518-06-10 00:00] Guard #73 begins shift
+[1518-05-01 23:54] Guard #1021 begins shift
+[1518-01-25 00:53] wakes up
+[1518-11-15 00:24] falls asleep
+[1518-02-10 00:40] wakes up
+[1518-02-15 23:53] Guard #2267 begins shift
+[1518-03-18 23:57] Guard #1373 begins shift
+[1518-11-20 00:04] Guard #2857 begins shift
+[1518-10-03 00:40] wakes up
+[1518-06-13 00:56] wakes up
+[1518-08-11 00:02] Guard #2083 begins shift
+[1518-04-05 00:56] falls asleep
+[1518-09-14 00:49] wakes up
+[1518-04-16 00:50] wakes up
+[1518-08-31 00:49] wakes up
+[1518-05-14 00:09] falls asleep
+[1518-02-04 00:00] Guard #661 begins shift
+[1518-07-07 00:32] wakes up
+[1518-10-08 23:58] Guard #2269 begins shift
+[1518-09-01 00:41] wakes up
+[1518-02-13 00:04] Guard #971 begins shift
+[1518-11-04 00:31] falls asleep
+[1518-05-17 00:47] wakes up
+[1518-05-14 00:32] falls asleep
+[1518-10-15 00:57] wakes up
+[1518-09-27 00:00] Guard #971 begins shift
+[1518-06-12 00:17] falls asleep
+[1518-02-05 00:03] Guard #2267 begins shift
+[1518-05-13 00:01] Guard #1511 begins shift
+[1518-10-27 00:00] Guard #1511 begins shift
+[1518-07-13 00:29] falls asleep
+[1518-06-28 00:47] wakes up
+[1518-10-28 00:57] wakes up
+[1518-07-22 00:38] wakes up
+[1518-05-08 00:02] Guard #571 begins shift
+[1518-05-23 23:58] Guard #971 begins shift
+[1518-10-22 00:34] wakes up
+[1518-08-09 00:08] falls asleep
+[1518-07-12 00:00] Guard #971 begins shift
+[1518-03-09 00:02] Guard #661 begins shift
+[1518-11-20 23:47] Guard #1511 begins shift
+[1518-04-16 00:00] Guard #113 begins shift
+[1518-03-22 00:35] wakes up
+[1518-10-09 00:20] falls asleep
+[1518-03-07 00:08] falls asleep
+[1518-08-19 00:30] wakes up
+[1518-11-01 23:56] Guard #157 begins shift
+[1518-09-01 00:24] falls asleep
+[1518-04-08 00:02] Guard #2083 begins shift
+[1518-08-28 23:56] Guard #1801 begins shift
+[1518-03-22 23:58] Guard #281 begins shift
+[1518-03-17 00:45] wakes up
+[1518-02-16 00:53] wakes up
+[1518-04-13 00:47] falls asleep
+[1518-07-15 00:57] wakes up
+[1518-10-23 00:49] falls asleep
+[1518-07-25 00:04] Guard #587 begins shift
+[1518-03-14 00:46] falls asleep
+[1518-08-20 00:01] Guard #971 begins shift
+[1518-06-20 00:00] Guard #2857 begins shift
+[1518-02-09 00:21] falls asleep
+[1518-05-29 00:03] falls asleep
+[1518-02-22 00:02] Guard #331 begins shift
+[1518-07-03 00:54] falls asleep
+[1518-07-12 00:51] wakes up
+[1518-11-11 00:00] Guard #971 begins shift
+[1518-08-20 00:22] falls asleep
+[1518-10-02 00:48] wakes up
+[1518-10-12 23:58] Guard #727 begins shift
+[1518-07-04 00:13] wakes up
+[1518-08-15 00:05] falls asleep
+[1518-03-17 00:42] falls asleep
+[1518-03-29 00:49] wakes up
+[1518-02-01 00:47] falls asleep
+[1518-02-05 00:45] wakes up
+[1518-02-18 00:30] falls asleep
+[1518-05-21 00:06] falls asleep
+[1518-08-18 00:26] falls asleep
+[1518-02-28 00:39] wakes up
+[1518-05-07 00:00] Guard #2857 begins shift
+[1518-03-07 23:59] Guard #2179 begins shift
+[1518-03-22 00:22] wakes up
+[1518-11-17 00:43] wakes up
+[1518-09-18 00:37] wakes up
+[1518-09-29 00:43] wakes up
+[1518-09-23 00:37] falls asleep
+[1518-11-19 00:02] Guard #571 begins shift
+[1518-06-03 00:33] falls asleep
+[1518-05-25 00:50] falls asleep
+[1518-03-19 00:40] falls asleep
+[1518-06-10 00:55] falls asleep
+[1518-08-18 00:45] wakes up
+[1518-09-21 00:28] falls asleep
+[1518-11-12 00:46] falls asleep
+[1518-11-05 00:04] Guard #587 begins shift
+[1518-06-06 00:35] wakes up
+[1518-09-01 00:17] wakes up
+[1518-06-16 00:56] wakes up
+[1518-05-14 00:20] wakes up
+[1518-09-15 00:08] falls asleep
+[1518-01-19 00:03] Guard #1021 begins shift
+[1518-03-24 00:31] falls asleep
+[1518-02-10 00:05] falls asleep
+[1518-03-28 00:12] falls asleep
+[1518-08-12 00:47] wakes up
+[1518-10-05 00:23] wakes up
+[1518-02-06 00:03] Guard #971 begins shift
+[1518-06-24 00:48] wakes up
+[1518-03-06 00:57] wakes up
+[1518-05-21 00:57] wakes up
+[1518-04-17 00:51] wakes up
+[1518-04-07 00:19] falls asleep
+[1518-05-21 23:57] Guard #3257 begins shift
+[1518-11-09 00:52] falls asleep
+[1518-10-30 00:26] wakes up
+[1518-08-19 00:48] falls asleep
+[1518-11-01 00:49] wakes up
+[1518-06-11 00:56] wakes up
+[1518-05-22 23:59] Guard #1801 begins shift
+[1518-08-01 00:58] wakes up
+[1518-03-20 23:52] Guard #727 begins shift
+[1518-08-06 00:56] wakes up
+[1518-10-17 00:32] falls asleep
+[1518-09-09 00:57] falls asleep
+[1518-10-15 00:47] falls asleep
+[1518-03-13 23:52] Guard #1021 begins shift
+[1518-02-13 00:14] falls asleep
+[1518-03-02 00:03] Guard #157 begins shift
+[1518-08-29 00:16] wakes up
+[1518-01-30 00:57] wakes up
+[1518-11-03 00:51] wakes up
+[1518-02-11 00:45] wakes up
+[1518-09-23 00:59] wakes up
+[1518-06-07 00:40] wakes up
+[1518-08-13 00:30] wakes up
+[1518-06-26 00:01] Guard #1801 begins shift
+[1518-08-01 00:04] Guard #557 begins shift
+[1518-11-09 00:58] wakes up
+[1518-02-18 00:52] wakes up
+[1518-11-20 00:28] falls asleep
+[1518-07-25 00:21] falls asleep
+[1518-07-23 00:07] falls asleep
+[1518-09-19 00:03] falls asleep
+[1518-07-19 00:42] falls asleep
+[1518-08-06 00:03] falls asleep
+[1518-05-08 00:50] falls asleep
+[1518-10-01 00:44] wakes up
+[1518-06-27 00:27] falls asleep
+[1518-11-01 00:04] falls asleep
+[1518-04-30 00:01] Guard #1021 begins shift
+[1518-06-22 00:41] wakes up
+[1518-10-10 00:42] falls asleep
+[1518-08-30 00:04] falls asleep
+[1518-04-11 00:07] falls asleep
+[1518-08-15 00:52] falls asleep
+[1518-07-23 00:27] wakes up
+[1518-09-11 00:53] wakes up
+[1518-07-18 00:46] wakes up
+[1518-05-01 00:21] falls asleep
+[1518-10-03 00:57] wakes up
+[1518-10-25 00:00] Guard #971 begins shift
+[1518-04-19 00:01] Guard #1373 begins shift
+[1518-03-30 00:37] falls asleep
+[1518-06-06 23:46] Guard #2269 begins shift
+[1518-05-03 00:18] wakes up
+[1518-10-22 00:09] wakes up
+[1518-01-26 00:47] wakes up
+[1518-03-16 00:32] falls asleep
+[1518-02-20 00:03] falls asleep
+[1518-11-10 00:48] wakes up
+[1518-01-22 00:54] falls asleep
+[1518-09-15 00:15] wakes up
+[1518-03-18 00:00] Guard #571 begins shift
+[1518-06-18 00:55] wakes up
+[1518-04-08 00:25] wakes up
+[1518-03-25 00:31] falls asleep
+[1518-07-12 00:20] wakes up
+[1518-08-26 00:36] falls asleep
+[1518-10-07 00:57] wakes up
+[1518-11-06 00:51] wakes up
+[1518-05-29 00:59] wakes up
+[1518-08-03 23:49] Guard #157 begins shift
+[1518-11-12 00:38] wakes up
+[1518-08-02 23:57] Guard #2857 begins shift
+[1518-01-30 00:00] Guard #73 begins shift
+[1518-10-18 00:45] falls asleep
+[1518-11-21 00:16] wakes up
+[1518-04-30 23:58] Guard #331 begins shift
+[1518-07-04 00:19] falls asleep
+[1518-07-05 00:00] Guard #3257 begins shift
+[1518-05-30 00:50] wakes up
+[1518-08-19 00:13] wakes up
+[1518-06-10 00:15] falls asleep
+[1518-05-12 00:39] falls asleep
+[1518-04-07 00:39] wakes up
+[1518-03-27 00:52] wakes up
+[1518-05-02 00:04] falls asleep
+[1518-06-01 00:00] Guard #2267 begins shift
+[1518-08-04 00:04] falls asleep
+[1518-10-30 00:20] falls asleep
+[1518-07-16 23:57] Guard #3257 begins shift
+[1518-09-28 23:57] Guard #971 begins shift
+[1518-05-05 00:05] falls asleep
+[1518-10-02 00:40] falls asleep
+[1518-08-10 00:44] wakes up
+[1518-05-23 00:52] falls asleep
+[1518-06-28 00:21] falls asleep
+[1518-01-24 00:00] Guard #113 begins shift
+[1518-11-01 00:57] wakes up
+[1518-08-28 00:58] wakes up
+[1518-09-29 23:57] Guard #1801 begins shift
+[1518-10-11 00:45] falls asleep
+[1518-05-02 23:51] Guard #2083 begins shift
+[1518-09-10 23:58] Guard #2267 begins shift
+[1518-07-31 00:43] wakes up
+[1518-09-11 00:49] falls asleep
+[1518-01-22 00:36] wakes up
+[1518-09-08 00:13] wakes up
+[1518-06-30 00:59] wakes up
+[1518-04-27 00:55] wakes up
+[1518-02-01 00:03] Guard #73 begins shift
+[1518-02-20 23:56] Guard #157 begins shift
+[1518-08-27 00:35] falls asleep
+[1518-10-17 00:34] wakes up
+[1518-11-01 00:22] wakes up
+[1518-03-03 23:57] Guard #661 begins shift
+[1518-08-31 00:46] falls asleep
+[1518-07-05 23:50] Guard #557 begins shift
+[1518-02-04 00:32] wakes up
+[1518-03-26 00:37] wakes up
+[1518-03-26 00:47] falls asleep
+[1518-11-17 23:58] Guard #73 begins shift
+[1518-03-24 23:59] Guard #157 begins shift
+[1518-03-30 00:52] wakes up
+[1518-11-08 00:06] falls asleep
+[1518-04-16 23:57] Guard #2857 begins shift
+[1518-09-05 00:51] wakes up
+[1518-08-09 00:51] falls asleep
+[1518-10-31 00:48] wakes up
+[1518-05-08 00:42] wakes up
+[1518-11-13 23:58] Guard #157 begins shift
+[1518-11-07 23:58] Guard #103 begins shift
+[1518-08-23 00:31] wakes up
+[1518-07-08 00:47] wakes up
+[1518-06-07 00:03] falls asleep
+[1518-05-19 00:22] falls asleep
+[1518-11-15 00:53] wakes up
+[1518-09-14 00:54] wakes up
+[1518-10-10 00:00] Guard #971 begins shift
+[1518-06-11 00:00] Guard #2857 begins shift
+[1518-06-29 00:10] falls asleep
+[1518-09-01 00:06] falls asleep
+[1518-02-23 00:53] wakes up
+[1518-08-23 23:56] Guard #1801 begins shift
+[1518-06-25 00:53] falls asleep
+[1518-04-17 00:22] falls asleep
+[1518-08-28 00:42] wakes up
+[1518-01-31 00:58] wakes up
+[1518-04-24 00:15] falls asleep
+[1518-05-09 00:59] wakes up
+[1518-10-28 23:57] Guard #113 begins shift
+[1518-09-10 00:14] falls asleep
+[1518-04-02 00:00] Guard #1801 begins shift
+[1518-03-09 00:48] wakes up
+[1518-08-10 00:31] falls asleep
+[1518-02-08 00:36] falls asleep
+[1518-09-12 00:32] falls asleep
+[1518-05-20 00:05] falls asleep
+[1518-09-05 23:57] Guard #157 begins shift
+[1518-07-03 00:17] falls asleep
+[1518-07-24 00:00] falls asleep
+[1518-11-15 00:21] wakes up
+[1518-02-09 23:51] Guard #1021 begins shift
+[1518-11-18 00:10] falls asleep
+[1518-03-16 00:01] Guard #2269 begins shift
+[1518-04-05 00:59] wakes up
+[1518-08-12 00:44] falls asleep
+[1518-08-26 00:50] wakes up
+[1518-07-03 00:01] Guard #571 begins shift
+[1518-09-08 00:39] wakes up
+[1518-05-18 00:10] wakes up
+[1518-06-18 23:56] Guard #557 begins shift
+[1518-07-09 23:50] Guard #2083 begins shift
+[1518-06-09 00:56] wakes up
+[1518-11-10 00:58] wakes up
+[1518-09-28 00:10] falls asleep
+[1518-01-28 00:53] wakes up
+[1518-06-17 00:13] falls asleep
+[1518-04-27 00:45] falls asleep
+[1518-01-24 00:40] wakes up
+[1518-04-04 00:02] Guard #157 begins shift
+[1518-03-22 00:27] falls asleep
+[1518-10-07 23:57] Guard #971 begins shift
+[1518-02-04 00:50] wakes up
+[1518-06-01 00:18] falls asleep
+[1518-10-31 00:00] Guard #2269 begins shift
+[1518-09-24 00:53] wakes up
+[1518-10-01 00:50] falls asleep
+[1518-02-07 00:49] wakes up
+[1518-05-06 00:22] wakes up
+[1518-10-04 00:02] Guard #1021 begins shift
+[1518-04-26 23:57] Guard #2083 begins shift
+[1518-04-27 00:08] falls asleep
+[1518-05-17 00:05] falls asleep
+[1518-02-20 00:38] wakes up
+[1518-04-29 00:19] falls asleep
+[1518-10-24 00:02] Guard #1801 begins shift
+[1518-08-01 00:07] falls asleep
+[1518-10-13 00:54] wakes up
+[1518-02-21 00:52] wakes up
+[1518-05-19 00:59] wakes up
+[1518-05-14 00:00] Guard #587 begins shift
+[1518-11-14 00:39] falls asleep
+[1518-04-19 00:38] wakes up
+[1518-11-03 00:27] falls asleep
+[1518-04-21 00:53] wakes up
+[1518-05-08 00:06] falls asleep
+[1518-09-23 00:27] falls asleep
+[1518-06-07 00:16] wakes up
+[1518-01-20 00:00] Guard #331 begins shift
+[1518-08-21 00:22] falls asleep
+[1518-09-01 00:53] wakes up
+[1518-04-07 00:50] falls asleep
+[1518-03-27 00:10] falls asleep
+[1518-06-03 00:02] Guard #587 begins shift
+[1518-07-30 23:56] Guard #2083 begins shift
+[1518-09-13 00:53] wakes up
+[1518-09-12 00:42] wakes up
+[1518-09-25 00:00] Guard #2267 begins shift
+[1518-10-23 00:19] falls asleep
+[1518-04-06 23:57] Guard #587 begins shift
+[1518-07-20 00:01] falls asleep
+[1518-10-16 00:40] wakes up
+[1518-09-24 00:31] falls asleep
+[1518-02-02 00:36] falls asleep
+[1518-09-28 00:47] wakes up
+[1518-07-15 23:56] Guard #2857 begins shift
+[1518-10-03 00:00] Guard #331 begins shift
+[1518-02-26 00:53] wakes up
+[1518-01-22 00:58] wakes up
+[1518-04-11 00:00] Guard #661 begins shift
+[1518-06-20 00:18] falls asleep
+[1518-06-27 00:42] wakes up
+[1518-06-16 23:56] Guard #971 begins shift
+[1518-11-10 00:55] falls asleep
+[1518-03-01 00:38] wakes up
+[1518-11-02 00:34] falls asleep
+[1518-05-30 00:48] falls asleep
+[1518-05-09 23:56] Guard #2179 begins shift
+[1518-11-12 00:55] falls asleep
+[1518-03-31 00:52] wakes up
+[1518-05-18 00:07] falls asleep
+[1518-02-02 23:59] Guard #2179 begins shift
+[1518-06-29 00:47] falls asleep
+[1518-09-26 00:49] wakes up
+[1518-02-18 00:23] wakes up
+[1518-07-11 00:03] Guard #157 begins shift
+[1518-03-21 00:02] falls asleep
+[1518-11-22 00:13] falls asleep
+[1518-07-28 00:25] falls asleep
+[1518-11-14 00:54] wakes up
+[1518-10-02 00:00] Guard #3257 begins shift
+[1518-02-11 00:15] falls asleep
+[1518-03-26 00:53] wakes up
+[1518-07-23 00:11] wakes up
+[1518-08-04 00:44] wakes up
+[1518-11-07 00:03] Guard #571 begins shift
+[1518-01-20 00:49] falls asleep
+[1518-08-28 00:38] falls asleep
+[1518-02-04 00:38] falls asleep
+[1518-11-05 23:56] Guard #113 begins shift
+[1518-11-19 00:52] wakes up
+[1518-03-28 23:59] Guard #1801 begins shift
+[1518-04-24 00:36] falls asleep
+[1518-05-22 00:28] falls asleep
+[1518-11-21 00:00] falls asleep
+[1518-08-24 00:38] wakes up
+[1518-03-14 23:49] Guard #2083 begins shift
+[1518-06-26 00:44] wakes up
+[1518-06-20 00:56] wakes up
+[1518-08-12 00:01] Guard #2857 begins shift
+[1518-10-11 23:56] Guard #661 begins shift
+[1518-08-14 00:34] falls asleep
+[1518-05-08 00:59] wakes up
+[1518-08-26 23:57] Guard #2267 begins shift
+[1518-10-01 00:37] falls asleep
+[1518-02-17 00:55] wakes up
+[1518-04-23 00:57] wakes up
+[1518-03-10 00:07] falls asleep
+[1518-02-25 00:58] wakes up
+[1518-01-20 00:18] falls asleep
+[1518-11-05 00:29] falls asleep
+[1518-06-28 00:02] Guard #103 begins shift
+[1518-07-30 00:38] falls asleep
+[1518-03-14 00:06] wakes up
+[1518-07-17 00:19] falls asleep
+[1518-09-20 00:50] wakes up
+[1518-05-16 23:46] Guard #971 begins shift
+[1518-01-25 00:32] falls asleep
+[1518-09-14 00:04] Guard #3257 begins shift
+[1518-07-04 00:50] wakes up
+[1518-05-09 00:05] falls asleep
+[1518-02-26 00:13] falls asleep
+[1518-05-04 00:03] falls asleep
+[1518-04-28 00:54] wakes up
+[1518-06-11 23:57] Guard #2857 begins shift
+[1518-04-22 00:09] falls asleep
+[1518-05-01 00:58] wakes up
+[1518-09-17 23:59] Guard #113 begins shift
+[1518-06-21 00:49] falls asleep
+[1518-11-21 00:22] falls asleep
+[1518-06-17 23:57] Guard #661 begins shift
+[1518-03-31 00:35] wakes up
+[1518-03-26 00:34] falls asleep
+[1518-10-23 00:00] Guard #73 begins shift
+[1518-06-15 23:57] Guard #103 begins shift
+[1518-04-02 00:38] wakes up
+[1518-05-12 00:23] falls asleep
+[1518-11-20 00:50] wakes up
+[1518-04-08 23:57] Guard #727 begins shift
+[1518-10-23 00:53] wakes up
+[1518-08-24 00:15] falls asleep
+[1518-08-11 00:32] falls asleep
+[1518-06-15 00:02] Guard #157 begins shift
+[1518-10-14 00:11] falls asleep
+[1518-01-28 23:54] Guard #2269 begins shift
+[1518-09-06 00:56] wakes up
+[1518-08-31 00:34] wakes up
+[1518-06-06 00:25] falls asleep
+[1518-04-24 00:56] wakes up
+[1518-10-01 00:02] Guard #2269 begins shift
+[1518-02-23 23:59] Guard #1373 begins shift
+[1518-05-13 00:15] wakes up
+[1518-09-15 23:58] Guard #661 begins shift
+[1518-03-04 00:18] falls asleep
+[1518-04-29 00:03] Guard #113 begins shift
+[1518-06-16 00:29] falls asleep
+[1518-10-22 00:06] falls asleep
+[1518-08-19 00:53] wakes up
+[1518-02-01 00:32] wakes up
+[1518-08-08 00:02] falls asleep
+[1518-02-23 00:25] falls asleep
+[1518-03-16 00:57] falls asleep
+[1518-04-20 00:18] falls asleep
+[1518-05-27 00:01] Guard #103 begins shift
+[1518-04-04 00:59] wakes up
+[1518-05-06 00:25] falls asleep
+[1518-02-27 00:23] falls asleep
+[1518-07-24 00:45] wakes up
+[1518-07-19 23:46] Guard #2267 begins shift
+[1518-05-11 00:48] wakes up
+[1518-07-08 00:52] wakes up
+[1518-04-08 00:24] falls asleep
+[1518-06-24 00:21] falls asleep
+[1518-07-21 00:44] wakes up
+[1518-09-17 00:56] falls asleep
+[1518-03-12 00:57] wakes up
+[1518-06-26 00:50] falls asleep
+[1518-01-24 23:59] Guard #2857 begins shift
+[1518-10-16 00:20] falls asleep
+[1518-03-29 00:55] falls asleep
+[1518-07-21 00:47] falls asleep
+[1518-10-14 00:28] falls asleep
+[1518-05-15 00:00] Guard #73 begins shift
+[1518-10-29 00:46] wakes up
+[1518-04-08 00:39] falls asleep
+[1518-06-15 00:40] falls asleep
+[1518-07-08 00:51] falls asleep
+[1518-06-04 00:13] falls asleep
+[1518-05-01 00:53] falls asleep
+[1518-05-31 00:42] falls asleep
+[1518-08-30 00:21] wakes up

+ 9 - 0
D5.1/D05.1.csproj

@@ -0,0 +1,9 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <OutputType>Exe</OutputType>
+    <TargetFramework>netcoreapp2.1</TargetFramework>
+    <RootNamespace>D5._1</RootNamespace>
+  </PropertyGroup>
+
+</Project>

+ 43 - 0
D5.1/Program.cs

@@ -0,0 +1,43 @@
+using System;
+using System.IO;
+
+namespace D5._1
+{
+    class Program
+    {
+        static void Main(string[] args)
+        {
+            if (args.Length < 1) return;
+            if (File.Exists(args[0]) == false) return;
+
+            var file = File.OpenText(args[0]);
+
+            string polymer = file.ReadLine();
+            reduce(ref polymer);
+
+            Console.WriteLine(polymer.Length);
+        }
+
+        static void reduce(ref string polymer)
+        {
+            for (int i = 1; i < polymer.Length; i++)
+            {
+                char cc = polymer[i];
+                char cm = polymer[i-1];
+
+                if (Math.Abs(cc - cm) <= 26) continue;
+                if (up(cc) == up(cm))
+                {
+                    polymer = polymer.Remove(i - 1, 2);
+                    i = Math.Max(0, i - 2);
+                }
+            }
+        }
+
+        static char up(char c)
+        {
+            if (c >= 'A' && c <= 'Z') return c;
+            return (char) ('A' + (c - 'a')); 
+        }
+    }
+}

+ 8 - 0
D5.1/Properties/launchSettings.json

@@ -0,0 +1,8 @@
+{
+  "profiles": {
+    "D05.1": {
+      "commandName": "Project",
+      "commandLineArgs": "\"D:\\adv\\Adv2018\\D5.1\\input.txt\""
+    }
+  }
+}

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
D5.1/input.txt


+ 9 - 0
D6.1/D06.1.csproj

@@ -0,0 +1,9 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <OutputType>Exe</OutputType>
+    <TargetFramework>netcoreapp2.1</TargetFramework>
+    <RootNamespace>D6._1</RootNamespace>
+  </PropertyGroup>
+
+</Project>

+ 91 - 0
D6.1/Program.cs

@@ -0,0 +1,91 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+
+namespace D6._1
+{
+    class Program
+    {
+        static void Main(string[] args)
+        {
+            if (args.Length < 1) return;
+            if (File.Exists(args[0]) == false) return;
+
+            var coordinates = new List<((uint x, uint y) coord, bool isInfinite)>();
+            var file = File.OpenText(args[0]);
+
+            do
+            {
+                var line = file.ReadLine();
+                if (line == null) break;
+
+                var cl = line.Split(", ");
+                coordinates.Add(((uint.Parse(cl[0]), uint.Parse(cl[1])), false));
+            } while (true);
+
+            var area = new int[coordinates.Count];
+
+            for (uint x = 0; x < 500; x++)
+            {
+                for (uint y = 0; y < 500; y++)
+                {
+                    var closest = GetClosest(coordinates, x, y);
+
+                    area[closest]++;
+                }
+            }
+
+            for (uint i = 0; i < 500; ++i)
+            {
+                var x0yi = GetClosest(coordinates, 0, i);
+                MarkInfinite(coordinates, x0yi);
+
+                var xiy0 = GetClosest(coordinates, i, 0);
+                MarkInfinite(coordinates, xiy0);
+
+                var x500yi = GetClosest(coordinates, 500, i);
+                MarkInfinite(coordinates, x500yi);
+
+                var xiy500 = GetClosest(coordinates, i, 500);
+                MarkInfinite(coordinates, xiy500);
+            }
+
+            int maxArea = 0;
+            for (int i = 0; i < area.Length; ++i)
+            {
+                if (coordinates.ElementAt(i).isInfinite) continue;
+
+                if (area[i] > maxArea) maxArea = area[i];
+
+                Console.WriteLine($"Area #{i} : {area[i]} (isInfinite : {coordinates.ElementAt(i).isInfinite})");
+            }
+
+            Console.WriteLine($"Answer : {maxArea}");
+        }
+
+        private static int GetClosest(List<((uint x, uint y) coord, bool isInfinite)> coordinates, uint x, uint y)
+        {
+            long lowest = int.MaxValue;
+            int lowestId = 100000;
+            for (int i = 0; i < coordinates.Count; i++)
+            {
+                var coord = coordinates[i];
+                var manhattan = Math.Abs((int)x - (int)coord.coord.x) + Math.Abs((int)y - (int)coord.coord.y);
+                if (manhattan < lowest)
+                {
+                    lowest = manhattan;
+                    lowestId = i;
+                }
+            }
+            return lowestId;
+        }
+
+        private static void MarkInfinite(List<((uint x, uint y) coord, bool isInfinite)> coordinates, int id)
+        {
+            var coord = coordinates[id];
+            coord.isInfinite = true;
+            coordinates[id] = coord;
+        }
+    }
+}

+ 8 - 0
D6.1/Properties/launchSettings.json

@@ -0,0 +1,8 @@
+{
+  "profiles": {
+    "D06.1": {
+      "commandName": "Project",
+      "commandLineArgs": "\"D:\\adv\\Adv2018\\D6.1\\input.txt\""
+    }
+  }
+}

+ 50 - 0
D6.1/input.txt

@@ -0,0 +1,50 @@
+353, 177
+233, 332
+178, 231
+351, 221
+309, 151
+105, 289
+91, 236
+321, 206
+156, 146
+94, 82
+81, 114
+182, 122
+81, 153
+319, 312
+334, 212
+275, 93
+224, 355
+347, 94
+209, 65
+118, 172
+113, 122
+182, 320
+191, 178
+99, 70
+260, 184
+266, 119
+177, 178
+313, 209
+61, 285
+155, 218
+354, 198
+274, 53
+225, 138
+228, 342
+187, 165
+226, 262
+143, 150
+124, 159
+325, 210
+163, 176
+326, 91
+170, 193
+84, 265
+199, 248
+107, 356
+45, 340
+277, 173
+286, 44
+242, 150
+120, 230

+ 9 - 0
D6.2/D06.2.csproj

@@ -0,0 +1,9 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <OutputType>Exe</OutputType>
+    <TargetFramework>netcoreapp2.1</TargetFramework>
+    <RootNamespace>D6._2</RootNamespace>
+  </PropertyGroup>
+
+</Project>

+ 53 - 0
D6.2/Program.cs

@@ -0,0 +1,53 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+
+namespace D6._2
+{
+    class Program
+    {
+        static void Main(string[] args)
+        {
+            if (args.Length < 1) return;
+            if (File.Exists(args[0]) == false) return;
+
+            var coordinates = new List<(uint x, uint y)>();
+            var file = File.OpenText(args[0]);
+
+            do
+            {
+                var line = file.ReadLine();
+                if (line == null) break;
+
+                var cl = line.Split(", ");
+                coordinates.Add((uint.Parse(cl[0]), uint.Parse(cl[1])));
+            } while (true);
+
+            int area = 0;
+
+            for (uint x = 0; x < 500; x++)
+            {
+                for (uint y = 0; y < 500; y++)
+                {
+                    var total = GetTotalDistance(coordinates, x, y);
+                    if (total < 10000) area++;
+                }
+            }
+
+            Console.WriteLine($"Answer : {area}");
+        }
+
+        private static int GetTotalDistance(List<(uint x, uint y)> coordinates, uint x, uint y)
+        {
+            int total = 0;
+            for (int i = 0; i < coordinates.Count; i++)
+            {
+                var coord = coordinates[i];
+                var manhattan = Math.Abs((int)x - (int)coord.x) + Math.Abs((int)y - (int)coord.y);
+                total += manhattan;
+            }
+            return total;
+        }
+    }
+}

+ 8 - 0
D6.2/Properties/launchSettings.json

@@ -0,0 +1,8 @@
+{
+  "profiles": {
+    "D06.2": {
+      "commandName": "Project",
+      "commandLineArgs": "\"D:\\adv\\Adv2018\\D6.2\\input.txt\""
+    }
+  }
+}

+ 50 - 0
D6.2/input.txt

@@ -0,0 +1,50 @@
+353, 177
+233, 332
+178, 231
+351, 221
+309, 151
+105, 289
+91, 236
+321, 206
+156, 146
+94, 82
+81, 114
+182, 122
+81, 153
+319, 312
+334, 212
+275, 93
+224, 355
+347, 94
+209, 65
+118, 172
+113, 122
+182, 320
+191, 178
+99, 70
+260, 184
+266, 119
+177, 178
+313, 209
+61, 285
+155, 218
+354, 198
+274, 53
+225, 138
+228, 342
+187, 165
+226, 262
+143, 150
+124, 159
+325, 210
+163, 176
+326, 91
+170, 193
+84, 265
+199, 248
+107, 356
+45, 340
+277, 173
+286, 44
+242, 150
+120, 230

Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно