Submission #3369589
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][];//左からll個、右からrr個取った時の、先手の最高得点。[a,b]=0 for(long i = 0; i <= a; i++) { dp[i] = new long[b+1]; } for(long ll = a; ll>= 0; ll--) { for(long rr = b; rr >= 0; rr--) { if(ll == a && rr == b) continue; if((ll + rr) % 2 == 0)//先手の番 { if(ll == a) dp[ll][rr] = dp[ll][rr+1]; else if(rr == b) dp[ll][rr] = dp[ll+1][rr]; else dp[ll][rr] = Math.Max(dp[ll+1][rr] + numsL[ll], dp[ll][rr+1]+numsR[rr]); Console.WriteLine(ll+" "+rr+" "+dp[ll][rr]); }else//後手の番 { if(ll == a) dp[ll][rr] = dp[ll][rr+1]; else if(rr == b) dp[ll][rr] = dp[ll+1][rr]; else dp[ll][rr] = Math.Min(dp[ll+1][rr], dp[ll][rr+1]); Console.WriteLine(ll+" "+rr+" "+dp[ll][rr]); } } } Console.WriteLine(dp[0][0]); } }
Submission Info
Submission Time | |
---|---|
Task | B - ゲーム |
User | suikameron |
Language | C# (Mono 4.6.2.0) |
Score | 0 |
Code Size | 1452 Byte |
Status | WA |
Exec Time | 2109 ms |
Memory | 30724 KB |
Judge Result
Set Name | All | ||||
---|---|---|---|---|---|
Score / Max Score | 0 / 3 | ||||
Status |
|
Set Name | Test Cases |
---|---|
All | 00, 01, 02, 90, 91 |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
00 | WA | 22 ms | 11220 KB |
01 | TLE | 2109 ms | 26880 KB |
02 | TLE | 2109 ms | 30724 KB |
90 | WA | 22 ms | 9172 KB |
91 | WA | 22 ms | 11220 KB |