Submission #32895144
Source Code Expand
using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Numerics;
namespace Tasks
{
public class B
{
public static void Main()
{
var sw = new StreamWriter(Console.OpenStandardOutput()) { AutoFlush = false };
Console.SetOut(sw);
Solve();
Console.Out.Flush();
}
public static void Solve()
{
var N = Scanner.Scan<int>();
var A = new int[N][];
for (var i = 0; i < N; i++)
{
A[i] = Scanner.ScanLine().Select(x => x - '0').ToArray();
}
var D8 = new[] { (1, 0), (-1, 0), (0, 1), (0, -1), (1, 1), (1, -1), (-1, 1), (-1, -1) };
long answer = 0;
for (var i = 0; i < N; i++)
{
for (var j = 0; j < N; j++)
{
foreach (var (di, dj) in D8)
{
long v = 0;
for (var k = 0; k < N; k++)
{
var ii = (i + di * k + N) % N;
var jj = (j + dj * k + N) % N;
v = v * 10 + A[ii][jj];
}
answer = Math.Max(answer, v);
}
}
}
Console.WriteLine(answer);
}
public static class Printer
{
public static void Print<T>(T source) => Console.WriteLine(source);
public static void Print1D<T>(IEnumerable<T> source, string separator = "") =>
Console.WriteLine(string.Join(separator, source));
public static void Print1D<T, U>(IEnumerable<T> source, Func<T, U> selector, string separator = "") =>
Console.WriteLine(string.Join(separator, source.Select(selector)));
public static void Print2D<T>(IEnumerable<IEnumerable<T>> source, string separator = "") =>
Console.WriteLine(string.Join("\n", source.Select(x => string.Join(separator, x))));
public static void Print2D<T, U>(IEnumerable<IEnumerable<T>> source, Func<T, U> selector, string separator = "") =>
Console.WriteLine(string.Join("\n", source.Select(x => string.Join(separator, x.Select(selector)))));
public static void Print2D<T>(T[,] source, string separator = "")
{
var (h, w) = (source.GetLength(0), source.GetLength(1));
for (var i = 0; i < h; i++)
for (var j = 0; j < w; j++)
{
Console.Write(source[i, j]);
Console.Write(j == w - 1 ? "\n" : separator);
}
}
public static void Print2D<T, U>(T[,] source, Func<T, U> selector, string separator = "")
{
var (h, w) = (source.GetLength(0), source.GetLength(1));
for (var i = 0; i < h; i++)
for (var j = 0; j < w; j++)
{
Console.Write(selector(source[i, j]));
Console.Write(j == w - 1 ? "\n" : separator);
}
}
}
public static class Scanner
{
public static string ScanLine() => Console.ReadLine()?.Trim() ?? string.Empty;
public static string[] Scan() => ScanLine().Split(' ');
public static T Scan<T>() where T : IConvertible => Convert<T>(Scan()[0]);
public static (T1, T2) Scan<T1, T2>() where T1 : IConvertible where T2 : IConvertible
{
var line = Scan();
return (Convert<T1>(line[0]), Convert<T2>(line[1]));
}
public static (T1, T2, T3) Scan<T1, T2, T3>() where T1 : IConvertible where T2 : IConvertible where T3 : IConvertible
{
var line = Scan();
return (Convert<T1>(line[0]), Convert<T2>(line[1]), Convert<T3>(line[2]));
}
public static (T1, T2, T3, T4) Scan<T1, T2, T3, T4>() where T1 : IConvertible where T2 : IConvertible where T3 : IConvertible where T4 : IConvertible
{
var line = Scan();
return (Convert<T1>(line[0]), Convert<T2>(line[1]), Convert<T3>(line[2]), Convert<T4>(line[3]));
}
public static (T1, T2, T3, T4, T5) Scan<T1, T2, T3, T4, T5>() where T1 : IConvertible where T2 : IConvertible where T3 : IConvertible where T4 : IConvertible where T5 : IConvertible
{
var line = Scan();
return (Convert<T1>(line[0]), Convert<T2>(line[1]), Convert<T3>(line[2]), Convert<T4>(line[3]), Convert<T5>(line[4]));
}
public static (T1, T2, T3, T4, T5, T6) Scan<T1, T2, T3, T4, T5, T6>() where T1 : IConvertible where T2 : IConvertible where T3 : IConvertible where T4 : IConvertible where T5 : IConvertible where T6 : IConvertible
{
var line = Scan();
return (Convert<T1>(line[0]), Convert<T2>(line[1]), Convert<T3>(line[2]), Convert<T4>(line[3]), Convert<T5>(line[4]), Convert<T6>(line[5]));
}
public static IEnumerable<T> ScanEnumerable<T>() where T : IConvertible => Scan().Select(Convert<T>);
private static T Convert<T>(string value) where T : IConvertible => (T)System.Convert.ChangeType(value, typeof(T));
}
}
}
Submission Info
| Submission Time |
|
| Task |
B - Number Box |
| User |
AconCavy |
| Language |
C# (.NET Core 3.1.201) |
| Score |
200 |
| Code Size |
5678 Byte |
| Status |
AC |
| Exec Time |
92 ms |
| Memory |
28360 KiB |
Judge Result
| Set Name |
Sample |
All |
| Score / Max Score |
0 / 0 |
200 / 200 |
| Status |
|
|
| Set Name |
Test Cases |
| Sample |
example_00.txt, example_01.txt |
| All |
example_00.txt, example_01.txt, test_00.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt |
| Case Name |
Status |
Exec Time |
Memory |
| example_00.txt |
AC |
92 ms |
28244 KiB |
| example_01.txt |
AC |
84 ms |
27936 KiB |
| test_00.txt |
AC |
80 ms |
28220 KiB |
| test_01.txt |
AC |
87 ms |
28016 KiB |
| test_02.txt |
AC |
82 ms |
27844 KiB |
| test_03.txt |
AC |
88 ms |
28048 KiB |
| test_04.txt |
AC |
79 ms |
28052 KiB |
| test_05.txt |
AC |
83 ms |
27948 KiB |
| test_06.txt |
AC |
87 ms |
28080 KiB |
| test_07.txt |
AC |
84 ms |
27840 KiB |
| test_08.txt |
AC |
84 ms |
28000 KiB |
| test_09.txt |
AC |
83 ms |
28316 KiB |
| test_10.txt |
AC |
82 ms |
28024 KiB |
| test_11.txt |
AC |
86 ms |
28052 KiB |
| test_12.txt |
AC |
82 ms |
28044 KiB |
| test_13.txt |
AC |
87 ms |
28360 KiB |
| test_14.txt |
AC |
83 ms |
28228 KiB |
| test_15.txt |
AC |
79 ms |
28156 KiB |