QOJ.ac

QOJ

Time Limit: 2.0 s Memory Limit: 1024 MB Total points: 100 Hackable ✓

#18027. 버섯이 나 있어!!

Statistics

"キノコが生えてる!!" (버섯이 나 있어!!)

경기과학고등학교의 기숙사인 우정 2관에는 경기과학고등학교 학생들, 벌, 바퀴벌레, 재우, 처음 보는 벌레, 달걀 등 다양한 생물들이 공존해서 살고 있다. 이 때문에 우정 2관은 환경 친화적이기로 무척이나 유명하다.

그러다 어느 날, 너무나도 환경 친화적인 나머지 우정 2관 샤워실에 버섯이 자라기 시작했다!

버섯을 싫어하는 오토마치 피클은, 이 버섯을 전부 없애버려야겠다고 생각했다.

샤워실에는 $N$개의 버섯이 일렬로 자라나 있고, $i$ $(1 \le i \le N)$번째 버섯의 크기는 $a_i$이다.

피클은 특별한 도구를 사용하여 버섯의 크기를 줄인다. $i$번째 버섯과, 그 버섯과 인접한 $j$번째 버섯을 대상으로 하여 도구를 사용하면 다음의 효과를 얻을 수 있다.

  • $i$번째 버섯의 크기는 $a_i\, \& \, a_j$가 된다. (& 연산은 bitwise and 연산이며, 정의는 하단 노트에 설명되어 있다.)

피클은 최대한 빨리 버섯을 없애고 라이트 노벨 [경쟁 프로그래밍이라니 절대 무리라고 주장하는 한별이를 백일동안 철저하게 스트릭 채우게 하는 ps 이야기] 를 보러 가고 싶어 하기 때문에, 도구의 사용 횟수를 최소한으로 하여 모든 버섯의 크기를 $0$으로 만들려 한다.

게으른 피클을 위해, 도구의 최소 사용 횟수를 대신 구해 주자!

Input

첫 번째 줄에 버섯의 수 $N$이 주어진다.

두 번째 줄에 $N$개의 수 $a_1,\,a_2,\,\cdots,\,a_N$가 공백으로 구분되어 주어진다.

$1 \le N \le 10^6$

$0 \le a_i \le 2^{31}-1 \,(1 \le i \le N,\, a_i$는 정수$)$

Output

모든 버섯의 크기를 0으로 만드는 것이 불가능하다면 -1을, 가능하다면 0으로 만들기 위한 도구 사용 횟수의 최솟값을 출력한다.

Scoring

번호 배점 제한
1 2 $a_1\ \&\ a_2\ \&\ \cdots\ \&\ a_N \neq 0$
2 10 $N=3$
3 18 $a_1=0$
4 30 $n\leq5000$
5 40 추가 제약 조건 없음.

Examples

Input 1

7
1 7 4 6 3 5 9

Output 1

8

Note

$i$번째 버섯의 크기가 $0$이 되어도 $i$번째 버섯은 사라지지 않는다. 즉, $i$번째 버섯의 크기가 $0$이 되어도 $i-1$번째 버섯과 $i+1$번째 버섯은 인접하지 않는다.

bitwise and 연산은 두 개의 이진수 값에 대해 자리 단위로 적용되는 연산이다. 먼저 피연산자로 주어진 두 값을 2진수로 표현한다. 그 뒤에 두 값의 각 자릿수를 비교해, 두 값 모두에 $1$이 있을 때만 $1$을, 나머지 경우에는 $0$을 계산한다.

예를 들어 $13 \& 7$의 값은 $5$이다. $13$은 2진수로 표현하면 $1101_{(2)}$ 이고 $7$은 2진수로 표현하면 $111_{(2)}$ 이다. 이후의 계산과정은 아래와 같다.

problem_18027_1.avif

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.