C - Many Requirements
C - Many Requirements。
C問題ながら水diffと言われている問題。
とはいえ、そこまでめちゃくちゃ難しいという感じでもない。
lis = []
res = 0
N, M, Q = map(int, input().split())
e = [list(map(int, input().split())) for i in range(Q)]
lis = [0]*N
def dfs(x, y):
global lis, res
if x == N:
tmp = 0
for a, b, c, d in e:
if lis[b-1]-lis[a-1] == c:
tmp += d
res = max(res, tmp)
return
for i in range(y, M+1):
lis[x] = i
dfs(x+1, i)
dfs(0, 1)
print(res)
計算量の試算をミスって、この解放ではどうせできないだろうと思って諦めてしまった。
とりあえず出してみてACをとっても意味がないので、そのへんの勘所ももう少し身につけたい。