Submission #3367941


Source Code Expand

using System;
using System.Linq;//リストの使用
using System.Collections.Generic;
class Program
{
	static void Main()
	{
		string[] input = Console.ReadLine().Split(' ');//Splitで区切り文字を指定して複数個受け取る。
		long a = long.Parse(input[0]);
		long b = long.Parse(input[1]);
		long[] numsL = Array.ConvertAll(Console.ReadLine().Split(' '),long.Parse);
    long[] numsR = Array.ConvertAll(Console.ReadLine().Split(' '),long.Parse);
		long[][] dp = new long[a+1][];//左l個、右r個取ったときの、先手の最高得点
    for(long i = 0; i <= a; i++)
    {
      dp[i] = new long[b+1];
    }
    
    for(long ll = 0; ll <= a; ll++)
    {
      for(long rr = 0; rr <= b; rr++)
      {
        if((ll+rr) % 2 == 1)//先手の番
        {
          if(a == ll && rr-1 >= 0)//左が空の時
          {
            dp[ll][rr] = dp[ll][rr-1] + numsR[rr-1];
          }
          else if(b == rr && ll-1 >= 0)//右が空の時
          {
            dp[ll][rr] = dp[ll-1][rr] + numsL[ll-1];
          }else
          {
            if(ll-1 >= 0) dp[ll][rr] = Math.Max(dp[ll-1][rr] + numsL[ll-1], dp[ll][rr]);
            if(rr-1 >= 0) dp[ll][rr] = Math.Max(dp[ll][rr], dp[ll][rr-1] + nums[rr-1]);
          }
        }else//後手の番
          {
          if(a == ll && rr-1 >= 0)//左が空の時
          {
            dp[ll][rr] = dp[ll][rr-1] + numsR[rr-1];
          }
          else if(b == rr && ll-1 >= 0)//右が空の時
          {
            dp[ll][rr] = dp[ll-1][rr] + numsL[ll-1];
          }else
          {
            if(ll+rr > 0) dp[ll][rr] = long.MaxValue;
            if(ll-1 >= 0) dp[ll][rr] = Math.Min(dp[ll-1][rr] + numsL[ll-1], dp[ll][rr]);
            if(rr-1 >= 0) dp[ll][rr] = Math.Min(dp[ll][rr], dp[ll][rr-1] + nums[rr-1]);
          }
        }
      }
    }

		Console.WriteLine(dp[a][b]);
	}
}

Submission Info

Submission Time
Task B - ゲーム
User suikameron
Language C# (Mono 4.6.2.0)
Score 0
Code Size 1923 Byte
Status CE

Compile Error

./Main.cs(35,76): error CS0103: The name `nums' does not exist in the current context
./Main.cs(50,76): error CS0103: The name `nums' does not exist in the current context