-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathtask117.py
More file actions
65 lines (56 loc) · 1.92 KB
/
Copy pathtask117.py
File metadata and controls
65 lines (56 loc) · 1.92 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# best: 115(Code Golf International) / others: 130(ox jam), 147(jailctf merger), 148(4atj sisyphus luke Seek mukundan), 172(import itertools), 175(LogicLynx)
# ====================================================== 115 ======================================================
# def p(g):
# n=len(g)
# for i in range(n-2,0,-1):
# for j in range(n):
# if[1]<[g[i][j]]*4==g[i-1][j-1:j+2:2]+g[i+1][j-1:j+2:2]:
# for z in range(n*n*2):
# if(e:=g[y:=z//n%n][x:=z%n]):g[i*2-y][x]=g[y][j*2-x]=e
# return g
def p(g):
for i in range(len(g)-2,0,-1):
for j in range(len(g)):
if[1]<[g[i][j]]*4==g[i-1][j-1:j+2:2]+g[i+1][j-1:j+2:2]:
for x in range(len(g)):
for y in range(len(g)):
if g[y][x]:g[i*2-y][x]=g[y][j*2-x]=g[y][x]
for x in range(len(g)):
for y in range(len(g)):
if g[y][x]:g[i*2-y][x]=g[y][j*2-x]=g[y][x]
return g
# R=range
# def p(g):
# n=len(g)
# for c in range(10):
# u=[i for i,v in enumerate(sum(g,[]))if c==v]
# if len(u)==5 and sum(u)==u[2]*5:
# i,j=divmod(u[2],n)
# for z in R(n*n*2):
# if 0<g[y:=z//n%n][x:=z%n]!=g[i][j]:g[i*2-y][x]=g[y][j*2-x]=g[y][x]
# return g
# for i in R(n-2,0,-1):
# for j in R(1,n-1):
# if 0<g[i][j]==g[i+1][j+1]==g[i+1][j-1]==g[i-1][j+1]==g[i-1][j-1]:
# for z in R(n*n*2):
# if 0<g[y:=z//n%n][x:=z%n]!=g[i][j]:g[i*2-y][x]=g[y][j*2-x]=g[y][x]
# return g
# R=range
# def p(g):
# n=len(g)
# for i in R(n-2,0,-1):
# for j in R(1,n-1):
# if 0<g[i][j]==g[i+1][j+1]==g[i+1][j-1]==g[i-1][j+1]==g[i-1][j-1]:
# for z in R(n*n*2):
# if 0<g[y:=z//n%n][x:=z%n]!=g[i][j]:g[i*2-y][x]=g[y][j*2-x]=g[y][x]
# return g
# def p(g):
# n=len(g)
# for i in range(1,n-1)[::-1]:
# for j in range(1,n-1):
# if g[i][j]==g[i+1][j+1]==g[i+1][j-1]==g[i-1][j+1]==g[i-1][j-1]>0:
# for y in range(n):
# for x in range(n):
# if 0<g[y][x]!=g[i][j]:
# g[i*2-y][x]=g[y][j*2-x]=g[i*2-y][j*2-x]=g[y][x]
# return g