Submission #1001413


Source Code Expand

import math as m
import functools


def int_reverse(num):
    num_len = len(bin(num))-2
    f = 2**num_len-1
    return num ^ f

n = int(input())
A = [int(input()) for i in range(n)]
lsbs = [[i for i in range(int(m.log2(a))+1) if (a>>i)&1][0] for a in A]
nim = functools.reduce(lambda x,y:x^y, A)

cnt = 0
for lsb in reversed(sorted(lsbs)):
    if nim == 0:
        break
    if int(m.log2(nim)) == lsb:
        nim = int_reverse(nim)
        cnt += 1

ans = cnt if(nim == 0) else -1
print(ans)

Submission Info

Submission Time
Task C - Cheating Nim
User furikus
Language Python (3.4.3)
Score 500
Code Size 519 Byte
Status AC
Exec Time 699 ms
Memory 9608 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 500 / 500
Status
AC × 2
AC × 26
Set Name Test Cases
Sample example0.txt, example1.txt
All 000.txt, 001.txt, 002.txt, 003.txt, 004.txt, 005.txt, 006.txt, 007.txt, 008.txt, 009.txt, 010.txt, 011.txt, 012.txt, 013.txt, 014.txt, 015.txt, 016.txt, 017.txt, 018.txt, 019.txt, 020.txt, 021.txt, 022.txt, 023.txt, example0.txt, example1.txt
Case Name Status Exec Time Memory
000.txt AC 29 ms 3692 KB
001.txt AC 29 ms 3692 KB
002.txt AC 650 ms 9232 KB
003.txt AC 292 ms 6524 KB
004.txt AC 305 ms 6284 KB
005.txt AC 228 ms 5392 KB
006.txt AC 676 ms 9564 KB
007.txt AC 679 ms 9568 KB
008.txt AC 685 ms 9564 KB
009.txt AC 674 ms 9572 KB
010.txt AC 687 ms 9568 KB
011.txt AC 692 ms 9604 KB
012.txt AC 688 ms 9608 KB
013.txt AC 683 ms 9572 KB
014.txt AC 682 ms 9564 KB
015.txt AC 692 ms 9564 KB
016.txt AC 681 ms 9568 KB
017.txt AC 694 ms 9600 KB
018.txt AC 682 ms 9564 KB
019.txt AC 684 ms 9568 KB
020.txt AC 699 ms 9572 KB
021.txt AC 89 ms 4180 KB
022.txt AC 89 ms 4180 KB
023.txt AC 644 ms 9232 KB
example0.txt AC 29 ms 3692 KB
example1.txt AC 29 ms 3692 KB