Problem: p03128
Buggy submission (Python (3.8.2), verdict: Wrong Answer):
N, M = map(int, input().split())
A = list(map(int, input().split()))
weight = [0,2,5,5,4,5,6,3,7,6]
inf = float('inf')
dp = [-inf] * (N+1)
dp[0] = 0
for i in range(N+1):
    for a in A:
        if i + weight[a] < N+1:
            dp[i + weight[a]] = max(dp[i + weight[a]], dp[i]*10 + a)
print(dp)


Failing test case input:
111 9
9 8 7 6 8 4 3 1 1

Expected output:
7111111111111111111111111111111111111111111111111111111


Actual output:
[0, -inf, 1, 7, 11, 71, 111, 711, 1111, 7111, 11111, 71111, 111111, 711111, 1111111, 7111111, 11111111, 71111111, 111111111, 711111111, 1111111111, 7111111111, 11111111111, 71111111111, 111111111111, 711111111111, 1111111111111, 7111111111111, 11111111111111, 71111111111111, 111111111111111, 711111111111111, 1111111111111111, 7111111111111111, 11111111111111111, 71111111111111111, 111111111111111111, 711111111111111111, 1111111111111111111, 7111111111111111111, 11111111111111111111, 71111111111111111111, 111111111111111111111, 711111111111111111111, 1111111111111111111111, 7111111111111111111111, 11111111111111111111111, 71111111111111111111111, 111111111111111111111111, 711111111111111111111111, 1111111111111111111111111, 7111111111111111111111111, 11111111111111111111111111, 71111111111111111111111111, 111111111111111111111111111, 711111111111111111111111111, 1111111111111111111111111111, 7111111111111111111111111111, 11111111111111111111111111111, 71111111111111111111111111111, 111111111111111111111111111111, 711111111111111111111111111111, 1111111111111111111111111111111, 7111111111111111111111111111111, 11111111111111111111111111111111, 71111111111111111111111111111111, 111111111111111111111111111111111, 711111111111111111111111111111111, 1111111111111111111111111111111111, 7111111111111111111111111111111111, 11111111111111111111111111111111111, 71111111111111111111111111111111111, 111111111111111111111111111111111111, 711111111111111111111111111111111111, 1111111111111111111111111111111111111, 7111111111111111111111111111111111111, 11111111111111111111111111111111111111, 71111111111111111111111111111111111111, 111111111111111111111111111111111111111, 711111111111111111111111111111111111111, 1111111111111111111111111111111111111111, 7111111111111111111111111111111111111111, 11111111111111111111111111111111111111111, 71111111111111111111111111111111111111111, 111111111111111111111111111111111111111111, 711111111111111111111111111111111111111111, 1111111111111111111111111111111111111111111, 7111111111111111111111111111111111111111111, 11111111111111111111111111111111111111111111, 71111111111111111111111111111111111111111111, 111111111111111111111111111111111111111111111, 711111111111111111111111111111111111111111111, 1111111111111111111111111111111111111111111111, 7111111111111111111111111111111111111111111111, 11111111111111111111111111111111111111111111111, 71111111111111111111111111111111111111111111111, 111111111111111111111111111111111111111111111111, 711111111111111111111111111111111111111111111111, 1111111111111111111111111111111111111111111111111, 7111111111111111111111111111111111111111111111111, 11111111111111111111111111111111111111111111111111, 71111111111111111111111111111111111111111111111111, 111111111111111111111111111111111111111111111111111, 711111111111111111111111111111111111111111111111111, 1111111111111111111111111111111111111111111111111111, 7111111111111111111111111111111111111111111111111111, 11111111111111111111111111111111111111111111111111111, 71111111111111111111111111111111111111111111111111111, 111111111111111111111111111111111111111111111111111111, 711111111111111111111111111111111111111111111111111111, 1111111111111111111111111111111111111111111111111111111, 7111111111111111111111111111111111111111111111111111111]


Fixed submission (verdict: Accepted):
N, M = map(int, input().split())
A = list(map(int, input().split()))
weight = [0,2,5,5,4,5,6,3,7,6]
inf = float('inf')
dp = [-inf] * (N+1)
dp[0] = 0
for i in range(N+1):
    for a in A:
        if i + weight[a] < N+1:
            dp[i + weight[a]] = max(dp[i + weight[a]], dp[i]*10 + a)
print(dp[-1])