RosettaCodeData/Task/Nonoblock/EasyLang/nonoblock.easy
2025-06-11 20:16:52 -04:00

41 lines
822 B
Text

func$ rep s$ n .
for i to n : r$ &= s$
return r$
.
func$[] genseq ones$[] nzeros .
if len ones$[] = 0
return [ rep "0" nzeros ]
.
for x = 1 to nzeros - len ones$[] + 1
skip1$[] = [ ]
for i = 2 to len ones$[]
skip1$[] &= ones$[i]
.
h$[] = genseq skip1$[] (nzeros - x)
for tail$ in h$[]
r$[] &= rep "0" x & ones$[1] & tail$
.
.
return r$[]
.
proc block data$ le .
a[] = number strchars data$
for b in a[] : nbytes += b
print "blocks " & a[] & " cells " & le
if le - nbytes <= 0
print "No solution"
return
.
for b in a[]
prep$[] &= rep "1" b
.
for r$ in genseq prep$[] (le - nbytes + 1)
print substr r$ 2 99999
.
print ""
.
block "21" 5
block "" 5
block "8" 10
block "2323" 15
block "23" 5