연산자 파티
시간 제한2초메모리 제한512 MB
X가 0에서 시작하여 i가 1부터 N까지 증가할 때 i의 배수마다 정해진 우선순위에 따라 연산을 적용한 최종 X 값을 구합니다.
문제
정수를 담는 변수 의 초기값은 이다.
를 부터 까지 씩 늘려 가면서 아래 조건에 맞는 연산을 진행한다. 까지 모든 연산을 마쳤을 때 최종 값을 출력하시오.
- 가 의 배수라면 = + 를 한다. (+는 더하기 연산자이다.)
- 가 의 배수라면 = % 를 한다. (%는 나머지 연산자이다.)
- 가 의 배수라면 = & 를 한다. (&는 비트 AND 연산자이다.)
- 가 의 배수라면 = ⊕ 를 한다. (⊕는 비트 XOR 연산자이다.)
- 가 의 배수라면 = | 를 한다. (|는 비트 OR 연산자이다.)
- 가 의 배수라면 = >> 를 한다. (>>는 비트 오른쪽 시프트 연산자이다.)
- 한 번에 여러 연산을 시행해야 한다면 +, %, &, ⊕, |, >> 순으로 우선순위를 두고 연산을 진행한다.
입력
첫 번째 줄에 이 주어진다.
두 번째 줄에 , , , , , 가 공백으로 구분되어 주어진다.
출력
최종 값을 출력한다.
제한
- , , , , , , 는 양의 정수다.
힌트
비트 연산자는 수를 비트 단위로 계산한다.
비트 AND
각 자리의 두 비트가 모두 이면 결과 비트는 이고, 그렇지 않으면 이다.
예시:
비트 XOR
각 자리의 두 비트가 서로 다르면 결과 비트는 이고, 그렇지 않으면 이다.
예시:
비트 OR
각 자리의 두 비트 중 하나라도 이면 결과 비트는 이고, 그렇지 않으면 이다.
예시:
비트 오른쪽 시프트
>> 는 의 비트를 번 오른쪽으로 옮긴다. 왼쪽에서 비게 되는 비트는 으로 채운다.
예시: