Pagini recente » Cod sursa (job #13605) | Cod sursa (job #101654) | Cod sursa (job #268612) | Cod sursa (job #1152668) | Cod sursa (job #2560182)
import itertools
f = open("radixsort.in")
g = open("radixsort.out", 'w')
def radix_sort(l):
maximum = max(l)
biti = 0
while (maximum):
biti += 1
maximum=maximum>> 1
if biti % 8 == 0:
bit_maxim = biti // 8
else:
bit_maxim = (biti // 8) + 1
x = l
for i in range(bit_maxim):
x = radixsort_offset(x, i)
return x
def radixsort_offset(x, y):
bit = (255 << y*8)
buckets = [[] for a in range(256)]
for num in x:
bit_offset = (num & bit) >> y*8
buckets[bit_offset].append(num)
return list(itertools.chain.from_iterable(buckets))
l=f.readline()
l=l.split()
N=int(l[0])
A=int(l[1])
B=int(l[2])
C=int(l[3])
a=[]
for i in range(1, N+1):
if i == 1:
a.append(B)
else:
a.append((A*a[len(a)-1]+B)%C)
rez=radix_sort(a)
for x in range(0, len(rez), 10):
g.write(str(rez[x])+' ')
f.close()
g.close()