結果
問題 |
No.2432 Flip and Move
|
ユーザー |
|
提出日時 | 2023-08-18 23:18:08 |
言語 | C#(csc) (csc 3.9.0) |
結果 |
AC
|
実行時間 | 306 ms / 2,000 ms |
コード長 | 1,390 bytes |
コンパイル時間 | 5,137 ms |
コンパイル使用メモリ | 106,752 KB |
実行使用メモリ | 78,208 KB |
最終ジャッジ日時 | 2024-11-28 10:15:58 |
合計ジャッジ時間 | 9,859 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 36 |
コンパイルメッセージ
Microsoft (R) Visual C# Compiler version 3.9.0-6.21124.20 (db94f4cc) Copyright (C) Microsoft Corporation. All rights reserved.
ソースコード
using System; using static System.Console; using System.Linq; using System.Collections.Generic; class Program { static int NN => int.Parse(ReadLine()); static int[] NList => ReadLine().Split().Select(int.Parse).ToArray(); public static void Main() { Solve(); } static void Solve() { var c = NList; var (h, w) = (c[0], c[1]); var k = long.Parse(ReadLine()); var dp = new bool[h][]; for (var i = 0; i < dp.Length; ++i) dp[i] = new bool[w]; var rx = 0; var ry = 0; var dx = 1; var dy = 1; var time = 0; do { dp[rx][ry] = !dp[rx][ry]; if (rx + dx < 0 || rx + dx >= h) dx = -dx; else rx += dx; if (ry + dy < 0 || ry + dy >= w) dy = -dy; else ry += dy; ++time; } while (rx != 0 || ry != 0 || dx != 1 || dy != 1); k %= time; for (var i = 0; i < k; ++i) { dp[rx][ry] = !dp[rx][ry]; if (rx + dx < 0 || rx + dx >= h) dx = -dx; else rx += dx; if (ry + dy < 0 || ry + dy >= w) dy = -dy; else ry += dy; } // WriteLine(time); WriteLine(string.Join("\n", dp.Select(di => string.Concat(di.Select(d => d ? '#' : '.'))))); } }