Problem p03128 (python)

Fixed submission:
N,M = map(int,input().split())
List = list(map(int,input().split()))

a = [0,2,5,5,4,5,6,3,7,6]

kazu = [a[List[i]] for i in range(M)]

def dddd(kazu,X):
  dp = [ [ -float('inf') for j in range(X+1)]  for i in range(M)]
  for i in range(M):
    dp[i][0] = 0

  for i in range(M):
    for j in range(X+1):
      if kazu[i] <= j:
        dp[i][j] = max(dp[i][j-kazu[i]] + 1,dp[i-1][j])
      else:
        dp[i][j] = dp[i-1][j]
  return dp[-1]
   
keta_arr = dddd(kazu,N)
keta = keta_arr[-1]
List.sort(reverse=True)
ans = []

while keta>0:
  for aa in List:
    k = a[aa]
    if N-k < 0:
      continue
    if N-k >= 0:
      if keta_arr[N-k] == keta-1:       
        ans.append(aa)
        N = N-k
        keta -= 1
        break
ans.sort(reverse=True)
print(int(''.join(map(str,ans))))

Buggy submission (verdict: Runtime Error):
N,M = map(int,input().split())
List = list(map(int,input().split()))

a = [0,2,5,5,4,5,6,3,7,6]

kazu = [a[List[i]] for i in range(M)]

def dddd(kazu,X):
  dp = [ [ 0 for j in range(X+1)]  for i in range(M)]

  for i in range(M):
    for j in range(X):
      if kazu[i] <= j:
        dp[i][j+1] = max(dp[i][j+1-kazu[i]] + 1,dp[i-1][j+1])
      else:
        dp[i][j+1] = dp[i-1][j+1]
  return dp[-1]
   
keta_arr = dddd(kazu,N)
keta = keta_arr[-1]
List.sort(reverse=True)
ans = []
x = 0

while keta>0:
  for aa in List:
    k = a[aa]
    if N-k >= 0:
      if keta_arr[-k-1-x] == keta-1:
        ans.append(aa)
        x += k
        N = N-k
        keta -= 1
    else:
      continue
ans.sort(reverse=True)
print(int(''.join(map(str,ans))))

Buggy submission (verdict: Runtime Error):
N,M = map(int,input().split())
List = list(map(int,input().split()))

a = [0,2,5,5,4,5,6,3,7,6]

kazu = [a[List[i]] for i in range(M)]

def dddd(kazu,X):
  dp = [ [ 0 for j in range(X+1)]  for i in range(M)]

  for i in range(M):
    for j in range(X):
      if kazu[i] <= j:
        dp[i][j+1] = max(dp[i][j+1-kazu[i]] + 1,dp[i-1][j+1])
      else:
        dp[i][j+1] = dp[i-1][j+1]
  return dp[-1]
   
keta_arr = dddd(kazu,N)
keta = keta_arr[-1]
List.sort(reverse=True)
ans = []
x = 0

for i in range(keta):
  for aa in List:
    k = a[aa]
    if N-k >= 0:
      if keta_arr[-k-1-x] == keta-i-1:
        ans.append(aa)
        x += k
        N = N-k
    else:
      continue
ans.sort(reverse=True)
print(int(''.join(map(str,ans))))

Buggy submission (verdict: Runtime Error):
N,M = map(int,input().split())
List = list(map(int,input().split()))

a = [0,2,5,5,4,5,6,3,7,6]

kazu = [a[List[i]] for i in range(M)]

def dddd(kazu,X):
  dp = [ [ 0 for j in range(X+1)]  for i in range(M)]

  for i in range(M):
    for j in range(X):
      if kazu[i] <= j:
        dp[i][j+1] = max(dp[i][j+1-kazu[i]] + 1,dp[i-1][j+1])
      else:
        dp[i][j+1] = dp[i-1][j+1]
  return dp[-1]
   
keta_arr = dddd(kazu,N)
keta = keta_arr[-1]
List.sort(reverse=True)
ans = []
x = 0

for i in range(keta):
  d = 0
  for aa in List:
    k = a[aa]
    if N-k > 0:
      if keta_arr[-k-1-x] == keta-i-1 and keta-i-1 != 0 and d == 0:
        ans.append(aa)
        d = 1
        x += k
        N = N-k
        if N == 0:
          break
        continue
    elif N == k and keta-i-1 == 0 and d == 0:
      ans.append(aa)
      d = 1
      N = 0
  if N == 0:
    break
ans.sort(reverse=True)
print(int(''.join(map(str,ans))))

Buggy submission (verdict: Runtime Error):
N,M = map(int,input().split())
List = list(map(int,input().split()))

a = [0,2,5,5,4,5,6,3,7,6]

kazu = [a[List[i]] for i in range(M)]

def dddd(kazu,X):
  dp = [ [ 0 for j in range(X+1)]  for i in range(M)]

  for i in range(M):
    for j in range(X):
      if kazu[i] <= j:
        dp[i][j+1] = max(dp[i][j+1-kazu[i]] + 1,dp[i-1][j+1])
      else:
        dp[i][j+1] = dp[i-1][j+1]
  return dp[-1]
   
keta_arr = dddd(kazu,N)
keta = keta_arr[-1]
List.sort(reverse=True)
ans = []
x = 0

for i in range(keta):
  for aa in List:
    k = a[aa]
    if N-k > 0:
      if keta_arr[-k-1-x] == keta-i-1 and keta-i-1 != 0:
        ans.append(aa)
        x += k
        N = N-k
        if N == 0:
          break
        continue
    elif N == k and keta-i-1 == 0:
      ans.append(aa)
      N = 0
  if N == 0:
    break
ans.sort(reverse=True)
print(int(''.join(map(str,ans))))

Buggy submission (verdict: Runtime Error):
N,M = map(int,input().split())
List = list(map(int,input().split()))

a = [0,2,5,5,4,5,6,3,7,6]

kazu = [a[List[i]] for i in range(M)]

def dddd(kazu,X):
  dp = [ [ 0 for j in range(X+1)]  for i in range(M)]

  for i in range(M):
    for j in range(X):
      if kazu[i] <= j:
        dp[i][j+1] = max(dp[i][j+1-kazu[i]] + 1,dp[i-1][j+1])
      else:
        dp[i][j+1] = dp[i-1][j+1]
  return dp[-1][-1]
   
keta = dddd(kazu,N)
List.sort(reverse=True)
ans = []

for i in range(keta):
  for aa in List:
    k = a[aa]
    if N-k > 0:
      if dddd(kazu,N-k) == keta-i-1 and keta-i-1 != 0:
        ans.append(aa)
        N = N-k
        if N == 0:
          break
        continue
    elif N == k and keta-i-1 == 0:
      ans.append(aa)
      N = 0
  if N == 0:
    break
ans.sort(reverse=True)
print(int(''.join(map(str,ans))))

Buggy submission (verdict: Runtime Error):
N,M = map(int,input().split())
List = list(map(int,input().split()))

a = [0,2,5,5,4,5,6,3,7,6]

kazu = [a[List[i]] for i in range(M)]

def dddd(kazu,X):
  dp = [ [ 0 for j in range(X+1)]  for i in range(M)]

  for i in range(M):
    for j in range(X):
      if kazu[i] <= j:
        dp[i][j+1] = max(dp[i][j+1-kazu[i]] + 1,dp[i-1][j+1])
      else:
        dp[i][j+1] = dp[i-1][j+1]
  return dp[-1][-1]
   
keta = dddd(kazu,N)
List.sort(reverse=True)
ans = []

for i in range(keta):
  for aa in List:
    k = a[aa]
    if N-k > 0:
      if dddd(kazu,N-k) == keta-i-1 and keta-i-1 != 0:
        ans.append(aa)
        N = N-k
        if N == 0:
          break
        continue
    elif N == k and keta-i-1 == 0:
      ans.append(aa)
      N = 0
  if N == 0:
    break
ans.sort(reverse=True)
print(int(''.join(map(str,ans))))

Buggy submission (verdict: Runtime Error):
N,M = map(int,input().split())
List = list(map(int,input().split()))

a = [0,2,5,5,4,5,6,3,7,6]

kazu = [a[List[i]] for i in range(M)]

def dddd(kazu,X):
  dp = [ [ 0 for j in range(X+1)]  for i in range(M)]

  for i in range(M):
    for j in range(X):
      if kazu[i] <= j:
        dp[i][j+1] = max(dp[i][j+1-kazu[i]] + 1,dp[i-1][j+1])
      else:
        dp[i][j+1] = dp[i-1][j+1]
  return dp[-1][-1]
   
keta = dddd(kazu,N)
List.sort(reverse=True)
ans = []

for i in range(keta):
  for aa in List:
    k = a[aa]
    if N-k > 0:
      if dddd(kazu,N-k) == keta-i-1:
        ans.append(aa)
        N = N-k
        if N == 0:
          break
        continue
    elif N == k and keta-i-1 == 1:
      ans.append(aa)
      N = 0
  if N == 0:
    break
ans.sort(reverse=True)
print(int(''.join(map(str,ans))))

Buggy submission (verdict: Runtime Error):
N, M = map(int, input().split())
A = list(set(map(lambda x : int(x)//2, input().split())))
def gcd(x, y):
  return x if y == 0 else gcd(y, x % y)
def lcm(x, y):
  return (x * y) // gcd(x, y)
l = A[0]
for a in A[1:]:
  l = lcm(l, a)
ans = (M // l + 1) // 2
for a in A[1:]:
  if (l // a) % 2 == 0:
    ans = 0
    break
print(ans)