結果
問題 |
No.401 数字の渦巻き
|
ユーザー |
![]() |
提出日時 | 2016-07-13 14:14:39 |
言語 | C#(csc) (csc 3.9.0) |
結果 |
WA
(最新)
AC
(最初)
|
実行時間 | - |
コード長 | 1,513 bytes |
コンパイル時間 | 2,718 ms |
コンパイル使用メモリ | 108,288 KB |
実行使用メモリ | 19,200 KB |
最終ジャッジ日時 | 2024-10-15 16:53:10 |
合計ジャッジ時間 | 2,848 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | WA * 30 |
コンパイルメッセージ
Microsoft (R) Visual C# Compiler version 3.9.0-6.21124.20 (db94f4cc) Copyright (C) Microsoft Corporation. All rights reserved.
ソースコード
using System; using System.Linq; namespace Ex160701{ public class Program{ public static void Main(string[] args){ var N = int.Parse(Console.ReadLine()); var res = new int[N, N].ToJaggedArray(); res[0][0] = 1; Func<int, int, bool> isInside = (tx, ty) => 0 <= tx && tx < N && 0 <= ty && ty < N; var c = 1; var d = 0; var dx = new[]{1, 0, -1, 0}; var dy = new[]{0, 1, 0, -1}; var x = 0; var y = 0; for(var i = 0; i < N * N; i++){ for(var j = 0; j < 2; j++, d++) { var nx = x + dx[d % 4]; var ny = y + dy[d % 4]; if(isInside(nx, ny) && res[ny][nx] == 0) { res[y = ny][x = nx] = ++c; break; } } } foreach(var r in res){ Console.WriteLine(string.Join(" ", r.Select(i => i.ToString ("00")))); } } } public static class ExMethod{ public static T[][] ToJaggedArray<T>(this T[,] src){ var x = src.GetLength(1); var y = src.GetLength(0); var ret = new T[y][]; for(var i = 0; i < y; i++){ ret[i] = new T[x]; for(var j = 0; j < x; j++){ ret[i][j] = src[i, j]; } } return ret; } } }