def a(string):
    """num 0s and 1s in range 9654, 10346"""
    count0 = count1 = 0
    for x in string[9653:10346]:
        if x is '0':
            count0+=1
        else:
            count1+=1
    print("count 0:",count0,"count 1:",count1)

def b(string):
    """docstring for b"""
    sum = 0.0
    n = list(range(16))
    for i in range(16):
        n[i] = 0

    for i in range(5000):
        currstr = string[i*4:(i*4)+4]
        currint = (int(currstr,2))
        n[currint] += 1
    for x in n:
        sum += x**2
    print('sum of n from 0 to 15:',sum)
    sum *= 16
    sum /= 5000
    print('sum after div',sum)
    sum -= 5000
    x = sum
    print(x)

def c(string):
    """docstring for c"""
    curr = 0
    runs0 = list(range(6))
    runs1 = list(range(6))
    for i in range(6):
        runs0[i] = 0
        runs1[i] = 0
    for x in string:
        if curr == 0:
            curr += 1
            prev = x
            continue
        if x == prev:
            curr += 1
            prev = x
            continue
        else:
            if curr >= 6:
                if x == '0':
                    runs0[5] += 1
                else:
                    runs1[5] += 1
            else:
                if x == '0':
                    runs0[curr-1] += 1
                else:
                    runs1[curr-1] += 1
            prev = x
            curr = 1
    print("runs 0:")
    for x in runs0:
        print(x)
    print("runs 1:")
    for x in runs1:
        print(x)

f = open('20krandbits', 'r')
string = f.readline()
print(len(string))
a(string)
b(string)
c(string)
