fork download
  1. def f(a):i=range(len(a[0]));j=range(len(a));b,c,d=map(sorted,zip(*[[x,x+y,x-y]for y in i for x in j if"?"<a[x][y]]));return[[[a[x][y],"#"][(a[x][y]>" ")*(b[0]<=x<=b[-1])*(c[0]<=x+y<=c[-1])*(d[0]<=x-y<=d[-1])]for y in i]for x in j]
  2.  
  3. print('\n'.join(map(''.join,f([
  4. " . . . . . . . .",
  5. ". . . . @ . . . ",
  6. " . @ . . . @ . .",
  7. ". . . @ . . . . ",
  8. " . . . . . @ . .",
  9. ". . . . . . . . "]))))
Success #stdin #stdout 0.01s 9992KB
stdin
Standard input is empty
stdout
 . . . . . . . .
. . # # # # . . 
 . # # # # # . .
. . # # # # # . 
 . . # # # # . .
. . . . . . . .