Problem p02609 (python)

Fixed submission:
n = int(input())
s = input()
x = int(s, 2)
pcx = s.count("1")
pc1 = x % (pcx - 1) if pcx > 1 else 0
pc2 = x % (pcx + 1)

def f(j):
    cnt = 0
    while j:
        j %= bin(j).count("1")
        cnt += 1
    return cnt

for i, y in enumerate(s):
    k = n - 1 - i
    if y == "0":
        print(f((pc2 + pow(2, k, pcx + 1)) % (pcx + 1)) + 1)
    elif pcx > 1:
        print(f((pc1 - pow(2, k, pcx - 1)) % (pcx - 1)) + 1)
    else:
        print(0)

Buggy submission (verdict: Runtime Error):
n = int(input())
s = input()
x = int(s, 2)
print(x)
pcx = s.count("1")
pc_n = x % (pcx - 1)
pc_p = x % (pcx + 1)

def f(j):
    cnt = 0
    while j:
        j %= bin(j).count("1")
        cnt += 1
    return cnt

for i, y in enumerate(s):
    k = n - 1 - i
    if y == "0":
        print(f((pc_p + pow(2, k, pcx + 1)) % (pcx + 1)) + 1)
    elif pcx > 1:
        print(f((pc_n - pow(2, k, pcx - 1)) % (pcx - 1)) + 1)
    else:
        print(0)

Buggy submission (verdict: Runtime Error):
import sys
input = sys.stdin.readline
def main():
    n = int(input())
    s = input()
    x = int(s, 2)
    pcx = s.count("1")
    pc1 = x % (pcx - 1) if pcx > 1 else 0
    pc2 = x % (pcx + 1)

    def f(j):
        cnt = 0
        while j:
            j %= bin(j).count("1")
            cnt += 1
        return cnt

    for i, y in enumerate(s):
        k = n - 1 - i
        if y == "0":
            print(f((pc2 + pow(2, k, pcx + 1)) % (pcx + 1)) + 1)
        elif pcx > 1:
            print(f((pc1 - pow(2, k, pcx - 1)) % (pcx - 1)) + 1)
        else:
            print(0)

if __name__ == '__main__':
    main()

Buggy submission (verdict: Runtime Error):
import sys
input = sys.stdin.readline
def main():
    n = int(input())
    s = input()
    x = int(s, 2)
    pcx = s.count("1")
    pc1 = x % (pcx - 1) if pcx > 1 else 0
    pc2 = x % (pcx + 1)

    def f(j):
        cnt = 0
        while j:
            j %= bin(j).count("1")
            cnt += 1
        return cnt

    for i, y in enumerate(s):
        k = n - 1 - i
        if y == "0":
            print(f((pc2 + pow(2, k, pcx + 1)) % (pcx + 1)) + 1)
        elif pcx > 1:
            print(f((pc1 - pow(2, k, pcx - 1)) % (pcx - 1)) + 1)
        else:
            print(0)

if __name__ == '__main__':
    main()

Buggy submission (verdict: Runtime Error):
import sys
input = sys.stdin.readline
def main():
    n = int(input())
    s = int(input(), 2)
    pc0 = bin(s).count("1")
    ans = []
    for i in range(n):
        k = 1 << (n - 1 - i)
        x = k ^ s
        if x >= s:
            pc1 = pc0 + 1
        else:
            pc1 = pc0 - 1
        x %= pc1
        cnt = 1
        while x > 0:
            pc = bin(x).count("1")
            x %= pc
            cnt += 1
        ans.append(cnt)
    print("\n".join(str(y) for y in ans))
if __name__ == '__main__':
    main()

Buggy submission (verdict: Runtime Error):
import sys
input = sys.stdin.readline
def main():
    n = int(input())
    s = int(input(), 2)
    pc0 = bin(s).count("1")
    ans = []
    for i in range(n):
        k = 1 << (n - 1 - i)
        x = k ^ s
        if x >= s:
            pc0 += 1
        else:
            pc0 -= 1
        x %= pc0
        cnt = 1
        while x > 0:
            pc = bin(x).count("1")
            x %= pc
            cnt += 1
        ans.append(cnt)
    print("\n".join(str(y) for y in ans))
if __name__ == '__main__':
    main()

Buggy submission (verdict: Runtime Error):
from card3.void.stop_watch import stop_watch
import sys
input = sys.stdin.readline
@stop_watch
def main():
    n = int(input())
    s = int(input(), 2)
    pc0 = bin(s).count("1")
    ans = []
    for i in range(n):
        k = 1 << (n - 1 - i)
        x = k ^ s
        if x >= s:
            pc0 += 1
        else:
            pc0 -= 1
        x %= pc0
        cnt = 1
        while x > 0:
            pc = bin(x).count("1")
            x %= pc
            cnt += 1
        ans.append(cnt)
    print("\n".join(str(y) for y in ans))
if __name__ == '__main__':
    main()