Submission #671615


Source Code Expand

using System;
using System.IO;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace chokudaiContest001 {
    class Program {
        const int N = 30;
        int[] dx = { 1, 0, -1, 0 },
              dy = { 0, 1, 0, -1 };
        int[,] board = new int[N + 2,N + 2];

        static void Main(string[] args) {
            new Program().calc();
        }

        void calc() {
            Scanner cin = new Scanner();
            foreach (int y in Enumerable.Range(0, N + 2)) {
                foreach (int x in Enumerable.Range(0, N + 2)) {
                    board[x, y] = -1;
                }
            }
            foreach (int y in Enumerable.Range(1, N)) {
                foreach (int x in Enumerable.Range(1, N)) {
                    board[x, y] = cin.nextInt();
                }
            }
            
            foreach (int y in Enumerable.Range(1, N)) {
                foreach (int x in Enumerable.Range(1, N)) {
                    int loop = board[x, y];
                    foreach(int i in Enumerable.Range(0, loop)) {
                        outputAndMoveLoop(x, y);
                    }
                }
            }
        }

        void outputAndMoveLoop(int x, int y) {
            output(x, y);
            board[x, y] -= 1;
            foreach(int i in Enumerable.Range(0, 4)) {
                int tx = x + dx[i];
                int ty = y + dy[i];
                if(0 < board[tx, ty] && board[x, y] == board[tx, ty]) {
                    outputAndMoveLoop(tx, ty);
                    return;
                }
            }
        }

        void output(int x, int y) {
            Console.WriteLine("{0} {1}", x, y);
        }

        void debugBoard() {
            foreach (int y in Enumerable.Range(0, N + 2)) {
                foreach (int x in Enumerable.Range(0, N + 2)) {
                    Console.Write(board[x, y]);
                    Console.Write(" ");
                }
                Console.WriteLine();
            }
            Console.WriteLine();
        }
    }

    class Scanner {
        string[] s;
        int i;
        char[] cs = { ' ' };

        public Scanner() {
            s = new string[0];
            i = 0;
        }

        public string next() {
            if (i < s.Length) return s[i++];
            string st = Console.ReadLine();
            while (st == "") st = Console.ReadLine();
            s = st.Split(cs, StringSplitOptions.RemoveEmptyEntries);
            i = 0;
            return next();
        }

        public int nextInt() {
            return int.Parse(next());
        }

        public long nextLong() {
            return long.Parse(next());
        }

        public double nextDouble() {
            return double.Parse(next());
        }
    }
}

Submission Info

Submission Time
Task A - 高橋君の山崩しゲーム
User zenito9970
Language C# (Mono 4.6.2.0)
Score 0
Code Size 2931 Byte
Status WA
Exec Time 546 ms
Memory 7116 KB

Judge Result

Set Name test_01 test_02 test_03 test_04 test_05 test_06 test_07 test_08 test_09 test_10
Score / Max Score 0 / 100000 0 / 100000 0 / 100000 0 / 100000 0 / 100000 0 / 100000 0 / 100000 0 / 100000 0 / 100000 0 / 100000
Status
WA × 1
WA × 1
WA × 1
WA × 1
WA × 1
WA × 1
WA × 1
WA × 1
WA × 1
WA × 1
Set Name Test Cases
test_01 subtask_01_01.txt
test_02 subtask_01_02.txt
test_03 subtask_01_03.txt
test_04 subtask_01_04.txt
test_05 subtask_01_05.txt
test_06 subtask_01_06.txt
test_07 subtask_01_07.txt
test_08 subtask_01_08.txt
test_09 subtask_01_09.txt
test_10 subtask_01_10.txt
Case Name Status Exec Time Memory
subtask_01_01.txt WA 521 ms 7000 KB
subtask_01_02.txt WA 546 ms 7112 KB
subtask_01_03.txt WA 514 ms 7104 KB
subtask_01_04.txt WA 543 ms 7112 KB
subtask_01_05.txt WA 518 ms 7104 KB
subtask_01_06.txt WA 515 ms 7000 KB
subtask_01_07.txt WA 528 ms 7112 KB
subtask_01_08.txt WA 508 ms 7000 KB
subtask_01_09.txt WA 526 ms 7112 KB
subtask_01_10.txt WA 522 ms 7116 KB