Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def Vivod(vec, n, m):
- for i in range(n):
- for j in range(m):
- print(vec[i][j], end = ' ')
- print()
- def fibbi(n, m, vec2):
- vec = [[0] * m for i in range(n)]
- vec3 = [[0] * m for i in range(n)]
- k = 0
- if vec2[0][0] == 1:
- vec[0][0] = 1
- vec3[0][0] = 1
- k = 1
- for i in range(1, m):
- if vec2[0][i] == 1:
- vec[0][i] = 1
- vec3[0][i] = k + 1
- k += 1
- else:
- break
- if vec2[0][0] == 1:
- k = 1
- else:
- k = 0
- for i in range(1, n):
- if vec2[i][0] == 1:
- vec[i][0] = 1
- vec3[i][0] = k + 1
- k += 1
- else:
- break
- k = 0
- for i in range(1, n):
- for j in range(1, m):
- if vec2[i][j] == 1:
- if vec2[i - 1][j] == 0 and vec2[i][j - 1] == 0:
- vec[i][j] = 0
- vec3[i][j] = 0
- continue
- if vec2[i - 1][j] == 0:
- vec[i][j] = vec[i][j - 1]
- vec3[i][j] = vec3[i][j - 1] + 1
- continue
- if vec2[i][j - 1] == 0:
- vec[i][j] = vec[i - 1][j]
- vec3[i][j] = vec3[i - 1][j] + 1
- continue
- vec[i][j] = vec[i - 1][j] + vec[i][j - 1]
- vec3[i][j] = min(vec3[i - 1][j], vec3[i][j - 1]) + 1
- # Vivod(vec, n, m)
- if vec2[n - 1][m - 1] == 0 or vec[n - 1][m - 1] == 0 or vec3[n - 1][m - 1] == 0 or vec2[0][0] == 0 or vec3[n - 1][m - 1] > n + m - 1:
- print("Impossible")
- exit(0)
- print(vec[n - 1][m - 1])
- n, m = map(int, input().split())
- vec2 =[[int(j) for j in input().split()] for i in range(n)]
- fibbi(n, m, vec2)
- """
- входные данные
- 3 5
- 1 1 1 1 1
- 1 0 1 0 1
- 1 1 1 1 1
- """
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement