結果
問題 | No.5002 stick xor |
ユーザー |
![]() |
提出日時 | 2018-05-27 13:17:42 |
言語 | C#(csc) (csc 3.9.0) |
結果 |
AC
|
実行時間 | 284 ms / 1,000 ms |
コード長 | 3,075 bytes |
コンパイル時間 | 12,411 ms |
実行使用メモリ | 9,164 KB |
スコア | 40,353 |
最終ジャッジ日時 | 2018-05-27 13:17:57 |
ジャッジサーバーID (参考情報) |
judge9 / |
純コード判定しない問題か言語 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 32 |
コンパイルメッセージ
Microsoft (R) Visual C# Compiler version 2.3.1.61919 (57c81319) Copyright (C) Microsoft Corporation. All rights reserved.
ソースコード
using System;using System.Collections.Generic;using System.Linq;using static System.Console;class Program{static void Main(){ReadLine();var N = 60;var K = 500;var L = ReadLine().Split().Select(int.Parse).ToArray();var map = new bool[N, N];for (int i = 0; i < N; i++){var line = ReadLine();for (int j = 0; j < N; j++){map[i, j] = line[j] == '0';}}var cmd = new int[K, 4];for (int k = 0; k < K; k++){var x = 0;var a = 0;var b = 0;var c = 0;var d = 0;for (int i = 0; i < N; i++){for (int j = 0; j < N - L[k]; j++){var n = BlackCount(map, i, j, i, j + L[k]-1);if (x < n){x = n;a = c = i;b = j;d = j + L[k]-1;}}}for (int i = 0; i < N - L[k]; i++){for (int j = 0; j < N; j++){var n = BlackCount(map, i, j, i + L[k]-1, j);if (x < n){x = n;b = d = j;a = i;c = i + L[k]-1;}}}cmd[k, 0] = a;cmd[k, 1] = b;cmd[k, 2] = c;cmd[k, 3] = d;Act(map, a, b, c, d);}for (int i = 0; i < K; i++){var a = cmd[i, 0];var b = cmd[i, 1];var c = cmd[i, 2];var d = cmd[i, 3];WriteLine($"{a + 1} {b + 1} {c + 1} {d + 1}");}}static int BlackCount(bool[,] map, int a, int b, int c, int d){var w = 0;if (a == c){var x = Math.Min(b, d);var r = x + Math.Abs(b - d) + 1;for (int j = x; j < r; j++){if (!map[a, j]) w++;}return w;}else{var y = Math.Min(a, c);var r = y + Math.Abs(a - c) + 1;for (int j = y; j < r; j++){if (!map[j, b]) w++;}return w;}}static void Act(bool[,] map, int a, int b, int c, int d){if (a == c){var x = Math.Min(b, d);var r = x + Math.Abs(b - d) + 1;for (int j = x; j < r; j++){map[a, j] = !map[a, j];}}else{var y = Math.Min(a, c);var r = y + Math.Abs(a - c) + 1;for (int j = y; j < r; j++){map[j, b] = !map[j, b];}}}}