-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathA35.php
More file actions
45 lines (37 loc) · 954 Bytes
/
A35.php
File metadata and controls
45 lines (37 loc) · 954 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<?php
function solve($A)
{
$N = count($A);
$memo = [];
function dfs($l, $r, $A, $N, &$memo)
{
if ($l == $r) {
return $A[$l];
}
if (isset($memo[$l][$r])) {
return $memo[$l][$r];
}
$taroTurn = (($r - $l + 1) % 2) === ($N % 2);
if ($taroTurn) {
$memo[$l][$r] = max(
dfs($l + 1, $r, $A, $N, $memo),
dfs($l, $r - 1, $A, $N, $memo)
);
} else {
$memo[$l][$r] = min(
dfs($l + 1, $r, $A, $N, $memo),
dfs($l, $r - 1, $A, $N, $memo)
);
}
return $memo[$l][$r];
}
return dfs(0, $N - 1, $A, $N, $memo);
}
// --------------------
// 入力読み込み部分
// --------------------
fscanf(STDIN, "%d", $N);
$line = trim(fgets(STDIN));
$A = array_map('intval', explode(" ", $line));
// 解を求めて出力
echo solve($A) . "\n";