-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathtask017.py
More file actions
32 lines (27 loc) · 1.8 KB
/
Copy pathtask017.py
File metadata and controls
32 lines (27 loc) · 1.8 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
# best: 90(Code Golf International) / others: 99(jailctf merger), 102(ox jam), 107(LogicLynx), 108(santa2024), 109(4atj sisyphus luke Seek mukundan)
# ========================================== 90 ==========================================
# p=lambda g,R=range(21):[[[u[(i%d,j%d)]for j in R]for i in R]for d in range(4,10)if len(u:=dict(m:=[((i%21%d,i//21%d),v)for i,v in enumerate(sum(g,[]))if v]))==len({*m})][0]
# p=lambda g:[u for d in range(4,10)if(u:=[[max(max(g[i%d::d])[j%d::d])for j in range(21)]for i in range(21)])if sum(s in g for s in u)>9][0]
# p=lambda g,R=range(21):[u for d in range(4,10)if(u:=[[max(max(g[i%d::d])[j%d::d])for j in R]for i in R])[0]in g or u[1]in g][0]
# p=lambda g,d=4,R=range(21):((u:=[[max(max(g[i%d::d])[j%d::d])for j in R]for i in R])[0]in g or u[1]in g)*u or p(g,d+1)
# p=lambda g:[[max(g+[*zip(*g)],key=lambda t:(t[j]>0,sum(map(int.__eq__,s,t))))[j]for j in range(21)]for s in g]
p=lambda g:[[max((t[j]>0,sum(map(int.__eq__,s,t)),t[j])for t in[*zip(*g)]+g)[2]for j in range(21)]for s in g]
# def p(g):
# cor = [d for d in range(4,10)if len(u:=dict(m:=[((i%21%d,i//21%d),v)for i,v in enumerate(sum(g,[]))if v]))==len({*m})][0]
# for d in range(4,10):
# u=[[max(max(g[i%d::d])[j%d::d])for j in range(21)]for i in range(21)]
# # DUMP(u)
# # DUMP(u[:d])
# # DUMP(u[d:d+d])
# print(cor,d,sum(s in g for s in u))
# # assert (sum(s in g for s in u)>10)==(cor==d)
# if sum(s in g for s in u)>9:
# return u
# # if d==cor:
# # return u
# return [[max(g[i%d+d][j%d::d]) for j in range(21)]for i in range(21)]
# return [[max(g[i%d::d])[j%d+d] for j in range(21)]for i in range(21)]
# def p(g):
# for d in range(4,10):
# if len(u:=dict(m:=[((i%21%d,i//21%d),v) for i,v in enumerate(sum(g,[]))if v]))==len({*m}):
# return [[u[(i%d,j%d)]for j in range(21)]for i in range(21)]