fork download
  1. # your code goes here
  2.  
  3. from random import randrange
  4.  
  5. for n in range(3,5):
  6. def foo(n,q):
  7. t = [[0]*n for _ in range(n)]
  8. r = [0]*n
  9. c = [0]*n
  10. a = n * q * 2
  11. ind = 1
  12. for _ in range(2000):
  13. if a == 0:
  14. break
  15. z = randrange(2)
  16. if z == 0:
  17. x = randrange(n-1)
  18. y = randrange(n)
  19. if t[y][x]==0 and t[y][x+1]==0 and r[y]+1<=q and c[x]+1<=q and c[x+1]+1<=q:
  20. r[y]+=1
  21. c[x]+=1
  22. c[x+1]+=1
  23. t[y][x]=ind
  24. t[y][x+1]=ind
  25. ind += 1
  26. a -= 3
  27. else:
  28. x = randrange(n)
  29. y = randrange(n-1)
  30. if t[y][x]==0 and t[y+1][x]==0 and r[y]+1<=1 and r[y+1]+1<=q and c[x]+1<=q:
  31. r[y]+=1
  32. r[y+1]+=1
  33. c[x]+=1
  34. t[y][x]=ind
  35. t[y+1][x]=ind
  36. ind += 1
  37. a -= 3
  38. if a==0:
  39. print(n,q,a==0)
  40. for y in range(n):
  41. print(*t[y])
  42. return a==0
  43. for q in range(1,n):
  44. for i in range(200):
  45. if foo(n,q):
  46. break
Success #stdin #stdout 3.22s 11552KB
stdin
Standard input is empty
stdout
3 1 True
0 0 1
0 0 1
2 2 0
3 2 True
2 3 3
2 0 1
4 4 1