Problem:


Score : 500 points

Problem Statement

There are K items placed on a grid of squares with R rows and C columns. Let (i, j) denote the square at the i-th row (1 \leq i \leq R) and the j-th column (1 \leq j \leq C). The i-th item is at (r_i, c_i) and has the value v_i.

Takahashi will begin at (1, 1), the start, and get to (R, C), the goal. When he is at (i, j), he can move to (i + 1, j) or (i, j + 1) (but cannot move to a non-existent square).

He can pick up items on the squares he visits, including the start and the goal, but at most three for each row. It is allowed to ignore the item on a square he visits.

Find the maximum possible sum of the values of items he picks up.

Constraints

1 \leq R, C \leq 3000

1 \leq K \leq \min(2 \times 10^5, R \times C)

1 \leq r_i \leq R

1 \leq c_i \leq C

(r_i, c_i) \neq (r_j, c_j) (i \neq j)

1 \leq v_i \leq 10^9

All values in input are integers.

Input

Input is given from Standard Input in the following format:

R C K
r_1 c_1 v_1
r_2 c_2 v_2
:
r_K c_K v_K

Output

Print the maximum possible sum of the values of items Takahashi picks up.

Sample Input 1

2 2 3
1 1 3
2 1 4
1 2 5

Sample Output 1

8

He has two ways to get to the goal:

Visit (1, 1), (1, 2), and (2, 2), in this order. In this case, the total value of the items he can pick up is 3 + 5 = 8.

Visit (1, 1), (2, 1), and (2, 2), in this order. In this case, the total value of the items he can pick up is 3 + 4 = 7.

Thus, the maximum possible sum of the values of items he picks up is 8.

Sample Input 2

2 5 5
1 1 3
2 4 20
1 2 1
1 3 4
1 4 2

Sample Output 2

29

We have four items in the 1-st row. The optimal choices are as follows:

Visit (1, 1) (1, 2), (1, 3), (1, 4), (2, 4), and (2, 5), in this order, and pick up all items except the one on (1, 2). Then, the total value of the items he picks up will be 3 + 4 + 2 + 20 = 29.

Sample Input 3

4 5 10
2 5 12
1 5 12
2 3 15
1 2 20
1 1 28
2 4 26
3 2 27
4 5 21
3 5 10
1 3 10

Sample Output 3

142



Sample input:
2 2 3
1 1 3
2 1 4
1 2 5


Sample output:
8

Submission status: Wrong Answer

Solution code:
# compiled by pythran
"""
# pythran export main2()
import numpy as np
i4 = np.int32
i8 = np.int64


def solve(a):
    dp = np.zeros_like(a)
    dp0 = np.zeros((a.shape[1], 4), i8)
    if a[0, 0] > 0:
        dp0[0, 1] = a[0, 0]
    for c in range(1, a.shape[1]):
        if a[0, c] > 0:
            dp0[c, 0] = dp0[c - 1, 0]
            dp0[c, 1] = max(dp0[c - 1, 1], dp0[c - 1, 0] + a[0, c])
            dp0[c, 2] = max(dp0[c - 1, 2], dp0[c - 1, 1] + a[0, c])
            dp0[c, 3] = max(dp0[c - 1, 3], dp0[c - 1, 2] + a[0, c])
        else:
            dp0[c, 0] = dp0[c - 1, 0]
            dp0[c, 1] = dp0[c - 1, 1]
            dp0[c, 2] = dp0[c - 1, 2]
            dp0[c, 3] = dp0[c - 1, 3]
        dp[0, c] = max(dp0[c, 0], dp0[c, 1], dp0[c, 2], dp0[c, 3])
    for r in range(1, a.shape[0]):
        dp0 = np.zeros((a.shape[1], 4), i8)
        dp0[0, 0] = dp[r - 1, 0]
        if a[r, 0] > 0:
            dp0[0, 1] = a[r, 0]
        for c in range(1, a.shape[1]):
            if a[r, c] > 0:
                dp0[c, 0] = max(dp0[c - 1, 0], dp[r - 1, c])
                dp0[c, 1] = max(dp0[c - 1, 1], dp0[c - 1, 0] + a[r, c], dp[r - 1, c] + a[r, c])
                dp0[c, 2] = max(dp0[c - 1, 2], dp0[c - 1, 1] + a[r, c])
                dp0[c, 3] = max(dp0[c - 1, 3], dp0[c - 1, 2] + a[r, c])
            else:
                dp0[c, 0] = max(dp0[c - 1, 0], dp[r - 1, c])
                dp0[c, 1] = dp0[c - 1, 1]
                dp0[c, 2] = dp0[c - 1, 2]
                dp0[c, 3] = dp0[c - 1, 3]
            dp[r, c] = max(dp0[c, 0], dp0[c, 1], dp0[c, 2], dp0[c, 3])
    return dp[a.shape[0] - 1, a.shape[1] - 1]


def main(file_name):
    stdin = open(file_name)
    R, C, K = [int(x) for x in stdin.readline().split()]
    a = np.zeros((R, C), dtype=i8)
    for i in range(K):
        r, c, v = [int(x) for x in stdin.readline().split()]
        a[r - 1, c - 1] = v
    ans = solve(a)
    print(ans)


def main2():
    main('/dev/stdin')
"""
import os, sys
p = os.path.dirname(__file__)
pymain = os.path.join(p, "a.out")
if len(sys.argv) == 1:
    import subprocess
    if p == "":
        pymain = "./" + pymain
    subprocess.call(pymain)
else:
    import gzip, base64, stat
    gz = b'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'
    bin = gzip.decompress(base64.b64decode(gz))
    with open(pymain, "wb") as f:
        f.write(bin)
    os.chmod(pymain, 0o775)

Submission status: Wrong Answer

Solution code:
R,C,K = map(int, input().split())
v = [[0] * C for i in range(R)]
for i in range(K):
    a = list(map(int, input().split()))
    v[a[0]-1][a[1]-1] = a[2]

t = [[0] * C for i in range(R)]

for i in range(R):
    same_row=[]
    t[i][0] = v[i][0] + (0 if i==0 else t[i-1][0])
    if v[i][0] > 0:
        same_row.append(v[i][0])
    for j in range(1,C):
        t1 = t[i-1][j] + v[i][j]
        t2 = t[i][j-1] + v[i][j]
        if v[i][j] > 0:
            same_row.append(v[i][j])
            if len(same_row) == 4:
                min_v = min(same_row)
                same_row.remove(min_v)
                t2 -= min_v
        if t1 < t2:
            t[i][j] = t2
        else:
            t[i][j] = t1
            same_row.clear()
print(t[R-1][C-1])

Submission status: Wrong Answer

Solution code:
R,C,K = map(int, input().split())
v = [[0] * C for i in range(R)]
for i in range(K):
    a = list(map(int, input().split()))
    v[a[0]-1][a[1]-1] = a[2]

t = [[0] * C for i in range(R)]

for i in range(R):
    same_row=[]
    t[i][0] = v[i][0] + (0 if i==0 else t[i-1][0])
    if v[i][0] > 0:
        same_row.append(v[i][0])
    for j in range(1,C):
        t1 = t[i-1][j] + v[i][j]
        t2 = t[i][j-1] + v[i][j]
        if v[i][j] > 0:
            same_row.append(v[i][j])
            if len(same_row) == 4:
                min_v = min(same_row)
                same_row.remove(min_v)
                t2 -= min_v
        if t1 > t2:
            t[i][j] = t1
            same_row.clear()
        else:
            t[i][j] = t2
print(t[R-1][C-1])

Submission status: Wrong Answer

Solution code:
import sys
R, C, K = list(map(int, input().split()))

d = [[[0] * (C) for _ in range(R)] for _ in range(4)]
t = [[0] * (C) for _ in range(R)]

for i in range(K):
    r,c,v = list(map(int, input().split()))
    t[r-1][c-1] = v

for i in range(R):
    for j in range(C):
        if (i == 0 and j != 0) or (d[0][i-1][j] < d[0][i][j-1]):
            k = t[i][j]
            for l in range(3):
                if d[l+1][i][j-1] < k:
                    d[l+1][i][j] = k
                    k = d[l+1][i][j-1]
                else:
                    d[l+1][i][j] = d[l+1][i][j-1]



            d[0][i][j] = t[i][j] + d[0][i][j-1] - k
        elif (j == 0 and i != 0) or (d[0][i-1][j] > d[0][i][j-1]):
            d[0][i][j] = t[i][j] + d[0][i-1][j]
            d[1][i][j] = t[i][j]
        elif i == 0 and j == 0:  
            d[0][i][j] = t[i][j]
            d[1][i][j] = t[i][j]

a = 0
for i in range(4):
    a = max(a, d[i][-1][-1])
print(a)

Submission status: Wrong Answer

Solution code:
import sys
R, C, K = list(map(int, input().split()))

d = [[[0] * (C) for _ in range(R)] for _ in range(4)]
t = [[0] * (C) for _ in range(R)]

for i in range(K):
    r,c,v = list(map(int, input().split()))
    t[r-1][c-1] = v

for i in range(R):
    for j in range(C):
        if (i == 0 and j != 0) or (d[0][i-1][j] < d[0][i][j-1]):
            k = 0
            for l in range(3):
                if d[l+1][i][j-1] < k:
                    d[l+1][i][j] = k
                    k = d[l+1][i][j-1]

                if d[l+1][i][j-1] < t[i][j]:
                    k = d[l+1][i][j-1]
                    d[l+1][i][j] = t[i][j]

            d[0][i][j] = t[i][j] + d[0][i][j-1] - k
        elif (j == 0 and i != 0) or (d[0][i-1][j] > d[0][i][j-1]):
            d[0][i][j] = t[i][j] + d[0][i-1][j]
            d[1][i][j] = t[i][j]
        elif i == 0 and j == 0:  
            d[0][i][j] = t[i][j]
            d[1][i][j] = t[i][j]

a = 0
for i in range(4):
    a = max(a, d[i][-1][-1])
print(a)

Submission status: Wrong Answer

Solution code:
import sys
R, C, K = list(map(int, input().split()))

d = [[[0] * (C) for _ in range(R)] for _ in range(4)]
t = [[0] * (C) for _ in range(R)]

for i in range(K):
    r,c,v = list(map(int, input().split()))
    t[r-1][c-1] = v

for i in range(R):
    for j in range(C):
        if (i == 0 and j != 0) or (d[0][i-1][j] < d[0][i][j-1]):
            k = 0
            for l in range(3):
                if d[l+1][i][j-1] < k:
                    d[l+1][i][j] = k
                    k = d[l+1][i][j-1]

                if d[l+1][i][j-1] < t[i][j]:
                    k = d[l+1][i][j-1]
                    d[l+1][i][j] = t[i][j]

            d[0][i][j] = t[i][j] + d[0][i][j-1] - k
        elif (j == 0 and i != 0) or (d[0][i-1][j] > d[0][i][j-1]):
            d[0][i][j] = t[i][j] + d[0][i-1][j]
            d[1][i][j] = t[i][j]
        elif i == 0 and j == 0:  
            d[0][i][j] = t[i][j]
a = 0
for i in range(4):
    a = max(a, d[i][-1][-1])
print(a)

Submission status: Wrong Answer

Solution code:
import sys
R, C, K = list(map(int, input().split()))

d = [[[0] * (C) for _ in range(R)] for _ in range(4)]
t = [[0] * (C) for _ in range(R)]

for i in range(K):
    r,c,v = list(map(int, input().split()))
    t[r-1][c-1] = v

for i in range(R):
    for j in range(C):
        if (i == 0 and j != 0) or (d[0][i-1][j] < d[0][i][j-1]):
            k = 0
            for l in range(3):
                if d[l+1][i][j-1] < k:
                    d[l+1][i][j] = k
                    k = d[l+1][i][j-1]

                if d[l+1][i][j-1] < t[i][j]:
                    k = d[l+1][i][j-1]
                    d[l+1][i][j] = t[i][j]

            d[0][i][j] = t[i][j] + d[0][i][j-1] - k
        elif (j == 0 and i != 0) or (d[0][i-1][j] > d[0][i][j-1]):
            d[0][i][j] = t[i][j] + d[0][i-1][j]
        elif i == 0 and j == 0:  
            d[0][i][j] = t[i][j]
a = 0
for i in range(4):
    a = max(a, d[i][-1][-1])
print(a)

Submission status: Wrong Answer

Solution code:
import sys
import numpy as np
R, C, K = list(map(int, input().split()))
d = np.zeros((R,C,5), dtype=np.int32)
t = np.zeros((R,C), dtype=np.int32)

for i in range(K):
    r,c,v = list(map(int, input().split()))
    t[r-1,c-1] = v


for i in range(R):
    for j in range(C):
        if t[i,j] != 0:
            if (i == 0 and j != 0) or (d[i-1,j,0] < d[i,j-1,0]):
                k = 0
                for l in range(3):
                    if d[i,j-1,l+1] < k:
                        d[i,j,l+1] = k
                        k = d[i,j-1,l+1]

                    if d[i,j-1,l+1] < t[i,j]:
                        k = d[i,j-1,l+1]
                        d[i,j,l+1] = t[i,j]

                d[i,j,0] = t[i,j] + d[i,j-1,0] - k
            elif (j == 0 and i != 0) or (d[i-1,j,0] > d[i,j-1,0]):
                d[i,j,0] = t[i,j] + d[i-1,j,0]
            elif i == 0 and j == 0:  
                d[i,j,0] = t[i,j]

print(np.max(d[:,:,0]))

Submission status: Wrong Answer

Solution code:
R, C, K = map(int, input().split())
m = [[0]* C for i in range(R)]
for i in range(K):
    r, c, v = map(int, input().split())
    m[r-1][c-1] = v

dp = [[[0] * 4 for i in range(C)] for j in range(R)]

#端
for i in range(R):
    dp[i][0][1] = m[i][0]
for i in range(1,C):
    for k in range(1, 4):
        dp[0][i][k] = max(dp[0][i-1][k], (dp[0][i-1][k-1] + m[0][i]))

#print(dp[0])

for j in range(1, R):
    for i in range(1, C):
            for k in range(4):
                if k == 2 or k == 3:
                    dp[j][i][k] = max(dp[j][i-1][k], (dp[j][i-1][k-1] + m[j][i]))
                elif k == 1:
                    dp[j][i][1] = max(dp[j][i-1][1], (dp[j][i-1][0] + m[j][i]), (max(dp[j-1][i]) + m[j][i]))
                elif k == 0:
                    dp[j][i][0] = max(dp[j][i-1][0], max(dp[j-1][i]))

print(max(dp[R-1][C-1]))