Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def gt(n, mt, x, y):
- if(mt & (1 << (y * n + x))):
- return 1
- else:
- return 0
- def serch_round(n, mt, x, y):
- if(y + 1 == n):
- u = 1
- else:
- u = 2
- if(y == 0):
- d = 0
- else:
- d = -1
- if(x + 1 == n):
- r = 1
- else:
- r = 2
- if(x == 0):
- l = 0
- else:
- l = -1
- out = -1 * gt(n, mt, x, y)
- for ay in range(y + d, y + u):
- for ax in range(x + l, x + r):
- out += gt(n, mt, ax, ay)
- return out
- n = int(input())
- now = 0
- past = 0
- for y in range(n):
- inp = input()
- for x in range(n):
- if(inp[x] == '*'):
- past = past | (1 << (y * n + x))
- hist = [past]
- ans = 0
- while(past):
- for y in range(n):
- for x in range(n):
- if(past & (1 << (y * n + x)) and 2 <= serch_round(n, past, x, y) <= 3):
- now = now | (1 << (y * n + x))
- if(not past & (1 << (y * n + x)) and serch_round(n, past, x, y) == 3):
- now = now | (1 << (y * n + x))
- if(hist.count(now)):
- print("Yes")
- ans += 1
- break
- hist.append(now)
- past = now
- now = 0
- ans += 1
- else:
- print("No")
- print(ans)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement