|
|
@@ -0,0 +1,56 @@
|
|
|
+using System;
|
|
|
+
|
|
|
+namespace D11._2
|
|
|
+{
|
|
|
+ class Program
|
|
|
+ {
|
|
|
+ static void Main(string[] args)
|
|
|
+ {
|
|
|
+ if (args.Length == 0) return;
|
|
|
+ int serial = int.Parse(args[0]);
|
|
|
+
|
|
|
+ const int length = 300;
|
|
|
+ var grid = new int[length, length];
|
|
|
+
|
|
|
+ for (int x = 1; x <= length; ++x)
|
|
|
+ {
|
|
|
+ for (int y = 1; y <= length; ++y)
|
|
|
+ {
|
|
|
+ int id = (x + 10);
|
|
|
+
|
|
|
+ int n = (id * y + serial) * id;
|
|
|
+ int c = (n / 100) % 10;
|
|
|
+
|
|
|
+
|
|
|
+ grid[x - 1, y - 1] = c - 5;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ int maxTotal = 0;
|
|
|
+ (int x, int y, int g)? maxCoordinates = null;
|
|
|
+
|
|
|
+ for (var g = 0; g < length; ++g)
|
|
|
+ {
|
|
|
+ for (int x = 1; x <= length -g + 1; ++x)
|
|
|
+ for (int y = 1; y <= length -g + 1; ++y)
|
|
|
+ {
|
|
|
+
|
|
|
+ int total = 0;
|
|
|
+ for (int j = 0; j < g; ++j)
|
|
|
+ for (int i = 0; i < g; ++i)
|
|
|
+ {
|
|
|
+ total += grid[x - 1 + i, y - 1 + j];
|
|
|
+ }
|
|
|
+
|
|
|
+ if (total > maxTotal)
|
|
|
+ {
|
|
|
+ maxTotal = total;
|
|
|
+ maxCoordinates = (x, y, g);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ Console.WriteLine($"The answer is : ({maxCoordinates.Value.x},{maxCoordinates.Value.y},{maxCoordinates.Value.g})");
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|