Submission #3271121


Source Code Expand

using System;
using System.Collections.Generic;
using System.Text;

namespace AtTest.D_Challenge
{
    class ABC_005
    {
        static void Main(string[] args)
        {
 using System;
using System.Collections.Generic;
using System.Text;

namespace AtTest.D_Challenge
{
    class ABC_005
    {
        static void Main(string[] args)
        {
            Method(args);
            Console.ReadLine();
        }

        static void Method(string[] args)
        {
            int n = int.Parse(Console.ReadLine());
            var d = new int[n, n];
            string[] input;
            for (int i = 0; i < n; i++)
            {
                input = Console.ReadLine().Split(' ');
                for(int j = 0; j < n; j++)
                {
                    d[i, j] = int.Parse(input[j]);
                }
            }
            int q= int.Parse(Console.ReadLine());
            var p = new int[q];
            for(int i = 0; i < q; i++)
            {
                p[i] = int.Parse(Console.ReadLine());
            }

            //0からの距離に関するおいしさを計算
            var squareDel = new int[n, n];
            squareDel[0, 0] = d[0, 0];
            for(int i = 1; i < n; i++)
            {
                squareDel[i, 0] = squareDel[i - 1, 0] + d[i, 0];
                squareDel[0, i] = squareDel[0, i - 1] + d[0, i];
            }
            for(int i = 1; i < n; i++)
            {
                for(int j = 1; j < n; j++)
                {
                    squareDel[i, j] = d[i, j]
                        + squareDel[i - 1, j] + squareDel[i, j - 1]
                        - squareDel[i - 1, j - 1];
                }
            }

            var cntDel = new int[n * n];
            for (int i = 0; i < n; i++)
            {
                for (int j = 0; j < n; j++)
                {
                    for (int k = 1; k <= n - i; k++)
                    {
                        for (int l = 1; l <= n - j; l++)
                        {
                            int val = squareDel[i + k - 1, j + l - 1];
                            if (i > 0)
                            {
                                val -= squareDel[i - 1, j + l - 1];
                            }
                            if (j > 0)
                            {
                                val -= squareDel[i + k - 1, j - 1];
                            }
                            if (i > 0 && j > 0)
                            {
                                val += squareDel[i - 1, j - 1];
                            }
                            int square = k * l;
                            if (cntDel[square - 1] < val)
                            {
                                cntDel[square - 1] = val;
                            }
                        }
                    }
                }
            }

            for (int i = 1; i < n * n; i++)
            {
                if (cntDel[i] < cntDel[i - 1])
                {
                    cntDel[i] = cntDel[i - 1];
                }
            }


            for(int i = 0; i < q; i++)
            {
                Console.WriteLine(cntDel[p[i] - 1]);
            }
        }
    }
}
           Method(args);
            Console.ReadLine();
        }

        static void Method(string[] args)
        {
            int n = int.Parse(Console.ReadLine());
            var d = new int[n, n];
            string[] input;
            for (int i = 0; i < n; i++)
            {
                input = Console.ReadLine().Split(' ');
                for(int j = 0; j < n; j++)
                {
                    d[i, j] = int.Parse(input[j]);
                }
            }
            int q= int.Parse(Console.ReadLine());
            var p = new int[q];
            for(int i = 0; i < q; i++)
            {
                p[i] = int.Parse(Console.ReadLine());
            }

            //0からの距離に関するおいしさを計算
            var squareDel = new int[n, n];
            squareDel[0, 0] = d[0, 0];
            for(int i = 1; i < n; i++)
            {
                squareDel[i, 0] = squareDel[i - 1, 0] + d[i, 0];
                squareDel[0, i] = squareDel[0, i - 1] + d[0, i];
            }
            for(int i = 1; i < n; i++)
            {
                for(int j = 1; j < n; j++)
                {
                    squareDel[i, j] = d[i, j]
                        + squareDel[i - 1, j] + squareDel[i, j - 1]
                        - squareDel[i - 1, j - 1];
                }
            }

            for(int i = 0; i < n; i++)
            {
                string s = "";
                for(int j = 0; j < n; j++)
                {
                    s += squareDel[i, j].ToString() + " ";
                }
                Console.WriteLine(s);
            }

            var cntDel = new int[n * n];
            for (int i = 0; i < n; i++)
            {
                for (int j = 0; j < n; j++)
                {
                    for (int k = 1; k <= n - i; k++)
                    {
                        for (int l = 1; l <= n - j; l++)
                        {
                            int val = squareDel[i + k - 1, j + l - 1];
                            if (i > 0)
                            {
                                val -= squareDel[i - 1, j + l - 1];
                            }
                            if (j > 0)
                            {
                                val -= squareDel[i + k - 1, j - 1];
                            }
                            if (i > 0 && j > 0)
                            {
                                val += squareDel[i - 1, j - 1];
                            }
                            int square = k * l;
                            if (cntDel[square - 1] < val)
                            {
                                cntDel[square - 1] = val;
                            }
                        }
                    }
                }
            }

            for (int i = 1; i < n * n; i++)
            {
                if (cntDel[i] < cntDel[i - 1])
                {
                    cntDel[i] = cntDel[i - 1];
                }
            }


            for(int i = 0; i < q; i++)
            {
                Console.WriteLine(cntDel[p[i] - 1]);
            }
        }
    }
}

Submission Info

Submission Time
Task D - おいしいたこ焼きの焼き方
User MiuraMiuMiu
Language C# (Mono 4.6.2.0)
Score 0
Code Size 6603 Byte
Status CE

Compile Error

./Main.cs(11,7): error CS1525: Unexpected symbol `System', expecting `('
./Main.cs(12,6): error CS1525: Unexpected symbol `System', expecting `('
./Main.cs(13,6): error CS1525: Unexpected symbol `System', expecting `('
./Main.cs(15,0): error CS1525: Unexpected symbol `namespace'
./Main.cs(16,0): error CS1525: Unexpected symbol `{'
./Main.cs(17,4): error CS1525: Unexpected symbol `class'
./Main.cs(18,4): error CS1525: Unexpected symbol `{'
./Main.cs(19,8): error CS1525: Unexpected symbol `static'
./Main.cs(19,16): error CS1547: Keyword `void' cannot be used in this context
./Main.cs(19,24): error CS1525: Unexpected symbol `('
./Main.cs(25,8): error CS1525: Unexpected symbol `static'
./Main.cs(25,16): error CS1547: Keyword `void' cannot be used in this context
./Main.cs(25,26): error CS1525: Unexpected symbol `('
./Main.cs(111,11): error CS1525: Unexpected symbol `Method'
./Main.cs(112,28): error CS1525: Unexpected symbol `('
./Main.cs(113,9): error CS1514: Unexpected symbol `}', expecting `.' or `{'
./Main.cs(...