CF1101G.(Zero XOR Subset)-less

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

You are given an array a1,a2,,ana_1, a_2, \dots, a_n of integer numbers.

Your task is to divide the array into the maximum number of segments in such a way that:

  • each element is contained in exactly one segment;
  • each segment contains at least one element;
  • there doesn't exist a non-empty subset of segments such that bitwise XOR of the numbers from them is equal to 00 .

Print the maximum number of segments the array can be divided into. Print -1 if no suitable division exists.

输入格式

The first line contains a single integer nn ( 1n21051 \le n \le 2 \cdot 10^5 ) — the size of the array.

The second line contains nn integers a1,a2,,ana_1, a_2, \dots, a_n ( 0ai1090 \le a_i \le 10^9 ).

输出格式

Print the maximum number of segments the array can be divided into while following the given constraints. Print -1 if no suitable division exists.

输入输出样例

  • 输入#1

    4
    5 5 7 2
    

    输出#1

    2
    
  • 输入#2

    3
    1 2 3
    

    输出#2

    -1
    
  • 输入#3

    3
    3 1 10
    

    输出#3

    3
    

说明/提示

In the first example 22 is the maximum number. If you divide the array into {[5],[5,7,2]}\{[5], [5, 7, 2]\} , the XOR value of the subset of only the second segment is 572=05 \oplus 7 \oplus 2 = 0 . {[5,5],[7,2]}\{[5, 5], [7, 2]\} has the value of the subset of only the first segment being 55=05 \oplus 5 = 0 . However, {[5,5,7],[2]}\{[5, 5, 7], [2]\} will lead to subsets {[5,5,7]}\{[5, 5, 7]\} of XOR 77 , {[2]}\{[2]\} of XOR 22 and {[5,5,7],[2]}\{[5, 5, 7], [2]\} of XOR 5572=55 \oplus 5 \oplus 7 \oplus 2 = 5 .

Let's take a look at some division on 33 segments — {[5],[5,7],[2]}\{[5], [5, 7], [2]\} . It will produce subsets:

  • {[5]}\{[5]\} , XOR 55 ;
  • {[5,7]}\{[5, 7]\} , XOR 22 ;
  • {[5],[5,7]}\{[5], [5, 7]\} , XOR 77 ;
  • {[2]}\{[2]\} , XOR 22 ;
  • {[5],[2]}\{[5], [2]\} , XOR 77 ;
  • {[5,7],[2]}\{[5, 7], [2]\} , XOR 00 ;
  • {[5],[5,7],[2]}\{[5], [5, 7], [2]\} , XOR 55 ;

As you can see, subset {[5,7],[2]}\{[5, 7], [2]\} has its XOR equal to 00 , which is unacceptable. You can check that for other divisions of size 33 or 44 , non-empty subset with 00 XOR always exists.

The second example has no suitable divisions.

The third example array can be divided into {[3],[1],[10]}\{[3], [1], [10]\} . No subset of these segments has its XOR equal to 00 .

首页