def merge_sort(arr,s):
global cnt
n = len(arr)
if n <= 1:
return arr
mid=n/2
first_half = merge_sort(arr[0:mid],s)
second_half = merge_sort(arr[mid:n],s)
temp=merge(first_half,second_half,s)
return temp
def merge(arr1, arr2,s):
global cnt
result = []
while len(arr1) > 0 and len(arr2) > 0:
if s[cnt]=='1':
result.append(arr1[0])
cnt=cnt+1
arr1=arr1[1:]
else:
result.append(arr2[0])
cnt=cnt+1
arr2=arr2[1:]
result.extend(arr1)
result.extend(arr2)
return result
st=""
for i in range(10):
st+='+'
st+="[>+++>"
for i in range(6):
st+='+'
st+='>'
for i in range(8):
st+='+'
st+='>'
for i in range(10):
st+='+'
st+='>'
for i in range(11):
st+='+'
print st
activities = { 8 : 'Sleeping',
9 : 'Commuting',
17 : 'Working',
18 : 'Commuting',
20 : 'Eating',
22 : 'Resting' }
st=merge_sort(activities,st)
print st
for i in range(5):
st+='<'
st+="-]>>"
for i in range(8):
st+='+'
st+='.+.'
TibD00m = { 8 : 'Work',
9 : 'Tension',
17 : 'Working',
18 : 'Bahk',
20 : 'ch',
22 : 'od' }
for i in range(4):
st+='-'
st+='.'
for i in range(19):
st+='+'
st+='.'
for i in range(12):
st+='-'
st+='.'
k=""
for i in range(145):
k=k+chr((65+(i%26)))
for i in range(6):
st+='-'
st+='.'
for i in range(10):
st+='+'
st+=".+++..--.++++++."
k=""
for i in range(145):
k=k+chr((65+(i%26)))
ZGVmIG1lcmdlX3NvcnQoYXJyLHMpOgoJZ2xvYmFsIGNudAoJbiA9IGxlbihhcnIpCglpZiBuIDw9IDE6CgkJcmV0dXJuIGFycgoJbWlkPW4vMgoJZmlyc3RfaGFsZiA9IG1lcmdlX3NvcnQoYXJyWzA6bWlkXSxzKQoJc2Vjb25kX2hhbGYgPSBtZXJnZV9zb3J0KGFyclttaWQ6bl0scykKCXRlbXA9bWVyZ2UoZmlyc3RfaGFsZixzZWNvbmRfaGFsZixzKQoJcmV0dXJuIHRlbXAKCmRlZiBtZXJnZShhcnIxLCBhcnIyLHMpOgoJZ2xvYmFsIGNudAoJcmVzdWx0ID0gW10KCXdoaWxlIGxlbihhcnIxKSA+IDAgYW5kIGxlbihhcnIyKSA+IDA6CgkJaWYgc1tjbnRdPT0nMSc6CgkJCXJlc3VsdC5hcHBlbmQoYXJyMVswXSkKCQkJY250PWNudCsxCgkgCQlhcnIxPWFycjFbMTpdCgkgCWVsc2U6CgkJCXJlc3VsdC5hcHBlbmQoYXJyMlswXSkKCQkJY250PWNudCsxCgkJCWFycjI9YXJyMlsxOl0KCXJlc3VsdC5leHRlbmQoYXJyMSkKCXJlc3VsdC5leHRlbmQoYXJyMikKCXJldHVybiByZXN1bHQKCgpzdD0iIgpmb3IgaSBpbiByYW5nZSgxMCk6CglzdCs9JysnCgpzdCs9Ils+KysrPiIKZm9yIGkgaW4gcmFuZ2UoNik6CglzdCs9JysnCnN0Kz0nPicKZm9yIGkgaW4gcmFuZ2UoOCk6CglzdCs9JysnCnN0Kz0nPicKZm9yIGkgaW4gcmFuZ2UoMTApOgoJc3QrPScrJwpzdCs9Jz4nCmZvciBpIGluIHJhbmdlKDExKToKCXN0Kz0nKycKcHJpbnQgc3QKYWN0aXZpdGllcyA9IHsgOCA6ICdTbGVlcGluZycsCgk5IDogJ0NvbW11dGluZycsCgkxNyA6ICdXb3JraW5nJywKCTE4IDogJ0NvbW11dGluZycsCgkyMCA6ICdFYXRpbmcnLAoJMjIgOiAnUmVzdGluZycgfQpzdD1tZXJnZV9zb3J0KGFjdGl2aXRpZXMsc3QpCnByaW50IHN0Cgpmb3IgaSBpbiByYW5nZSg1KToKCXN0Kz0nPCcKc3QrPSItXT4+Igpmb3IgaSBpbiByYW5nZSg4KToKCXN0Kz0nKycKc3QrPScuKy4nCgpUaWJEMDBtID0geyA4IDogJ1dvcmsnLAoJOSA6ICdUZW5zaW9uJywKCTE3IDogJ1dvcmtpbmcnLAoJMTggOiAnQmFoaycsCgkyMCA6ICdjaCcsCgkyMiA6ICdvZCcgfQoJCmZvciBpIGluIHJhbmdlKDQpOgoJc3QrPSctJwpzdCs9Jy4nCmZvciBpIGluIHJhbmdlKDE5KToKCXN0Kz0nKycKc3QrPScuJwpmb3IgaSBpbiByYW5nZSgxMik6CglzdCs9Jy0nCnN0Kz0nLicKCms9IiIKZm9yIGkgaW4gcmFuZ2UoMTQ1KToKCWs9aytjaHIoKDY1KyhpJTI2KSkpCgkKZm9yIGkgaW4gcmFuZ2UoNik6CglzdCs9Jy0nCnN0Kz0nLicKZm9yIGkgaW4gcmFuZ2UoMTApOgoJc3QrPScrJwpzdCs9Ii4rKysuLi0tLisrKysrKy4iCgprPSIiCmZvciBpIGluIHJhbmdlKDE0NSk6CglrPWsrY2hyKCg2NSsoaSUyNikpKQoKCQoK