-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathtask054.py
More file actions
47 lines (44 loc) · 2.04 KB
/
Copy pathtask054.py
File metadata and controls
47 lines (44 loc) · 2.04 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
# best: 266(Code Golf International) / others: 270(ox jam), 277(LogicLynx), 279(jailctf merger), 298(HIMAGINE THE FUTURE.), 302(FuunAgent)
def p(g):
for c in range(10):
z=[(i,j)for i in range(30)for j in range(30)if g[i][j]==c]
if z and z[-1][0]-z[0][0]<5:
y=z[0][0]+z[-1][0]>>1
x=z[0][1]+z[-1][1]>>1
g=[[max((g[k][w]==g[y][x]!=g[i][j]!=g[0][0]!=g[y+max(min(i-k,2),-2)][x+max(min(j-w,2),-2)]and g[0][0]not in g[i][min(j,w):max(j,w)] and g[0][0]not in [*zip(*g)][w][min(i,k):max(i,k)])and g[y+max(min(i-k,2),-2)][x+max(min(j-w,2),-2)]
for k in range(30)for w in range(30)) or g[i][j] for j in range(30)]for i in range(30)]
for s in g[y-2:y+3]:
s[x-2:x+3]=[g[0][0]]*5
return g
# def p(g):
# for c in range(10):
# z=[(i,j)for i in range(30)for j in range(30)if g[i][j]==c]
# if len(z)>3 and z[-1][0]-z[0][0]<5:
# y=z[0][0]+z[-1][0]>>1
# x=z[0][1]+z[-1][1]>>1
# for l in range(1,30):
# for u in range(1,30):
# r=g[u].index(g[0][0],l)
# d=[*zip(*g)][l].index(g[0][0],u)
# if g[0][0]==g[u-1][l]==g[u][l-1] and r-l>5:
# g[u:d]=[[(l<=j<r)*max(g[k][w]==g[y][x]!=g[i][j]!=g[0][0]!=(v:=g[y+max(min(i-k,2),-2)][x+max(min(j-w,2),-2)])and v for k in range(u,d)for w in range(l,r)) or g[i][j] for j in range(30)]for i in range(u,d)]
# for s in g[y-2:y+3]:
# s[x-2:x+3]=[g[0][0]]*5
# return g
# def p(g):
# for c in range(10):
# z=[(i,j)for i in range(30)for j in range(30)if g[i][j]==c]
# if len(z)>3 and z[-1][0]-z[0][0]<5:
# y=z[0][0]+z[-1][0]>>1
# x=z[0][1]+z[-1][1]>>1
# t=[]
# for s in g[y-2:y+3]:
# t+=s[x-2:x+3],
# s[x-2:x+3]=[g[0][0]]*5
# for l in range(1,30):
# for u in range(1,30):
# if g[u][l]!=g[0][0] and g[u-1][l]==g[u][l-1]==g[0][0]:
# r=g[u].index(g[0][0],l)
# d=[*zip(*g)][l].index(g[0][0],u)
# g[u:d]=[g[i][:l]+[max(g[i][j]!=g[0][0] and g[k][w]==t[2][2] and (v:=t[2+max(min(i-k,2),-2)][2+max(min(j-w,2),-2)])!=g[0][0] and v for k in range(u,d)for w in range(l,r)) or g[i][j] for j in range(l,r)]+g[i][r:]for i in range(u,d)]
# return g