示例#1
0
        static void Main()
        {
            var ss = new StreamScanner(new StreamReader(Console.OpenStandardInput()));
            var sw = new StreamWriter(Console.OpenStandardOutput())
            {
                AutoFlush = false
            };

            new Program().Solve(ss, sw);
            sw.Flush();
        }
示例#2
0
        void Solve(StreamScanner ss, StreamWriter sw)
        {
            //---------------------------------
            N    = ss.Next(int.Parse);
            K    = ss.Next(int.Parse);
            K2   = K * 2;
            imos = new int[K2 + 1, K2 + 1];

            for (var i = 0; i < N; i++)
            {
                var X = ss.Next(int.Parse);
                var Y = ss.Next(int.Parse);
                var C = ss.Next(String);
                if (C == "B")
                {
                    X += K;
                }

                Add(X, Y, X + K - 1, Y + K - 1);
                Add(X + K, Y + K, X + K2 - 1, Y + K2 - 1);
            }

            for (var i = 0; i <= 2 * K; i++)
            {
                for (var j = 0; j <= 2 * K; j++)
                {
                    if (i != 0)
                    {
                        imos[i, j] += imos[i - 1, j];
                    }
                    if (j != 0)
                    {
                        imos[i, j] += imos[i, j - 1];
                    }
                    if (i != 0 && j != 0)
                    {
                        imos[i, j] -= imos[i - 1, j - 1];
                    }
                }
            }

            var max = 0;

            foreach (var value in imos)
            {
                max = Math.Max(max, value);
            }
            sw.WriteLine(max);
            //---------------------------------
        }