만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

연산자 파티

시간 제한2초메모리 제한512 MB

요약
X가 0에서 시작하여 i가 1부터 N까지 증가할 때 i의 배수마다 정해진 우선순위에 따라 연산을 적용한 최종 X 값을 구합니다.
난이도

어려움10점 중 8점

유형
수학, 비트 연산, 시뮬레이션
정답자
아직 제출이 없습니다

문제

정수를 담는 변수 XX의 초기값은 00이다.

ii를 11부터 NN까지 11씩 늘려 가면서 아래 조건에 맞는 연산을 진행한다. NN까지 모든 연산을 마쳤을 때 최종 XX값을 출력하시오.

  • ii가 AA의 배수라면 XX = XX + ii를 한다. (+는 더하기 연산자이다.)
  • ii가 BB의 배수라면 XX = XX % ii를 한다. (%는 나머지 연산자이다.)
  • ii가 CC의 배수라면 XX = XX & ii를 한다. (&는 비트 AND 연산자이다.)
  • ii가 DD의 배수라면 XX = XX ⊕ ii를 한다. (⊕는 비트 XOR 연산자이다.)
  • ii가 EE의 배수라면 XX = XX | ii를 한다. (|는 비트 OR 연산자이다.)
  • ii가 FF의 배수라면 XX = XX >> ii를 한다. (>>는 비트 오른쪽 시프트 연산자이다.)
  • 한 번에 여러 연산을 시행해야 한다면 +, %, &, ⊕, |, >> 순으로 우선순위를 두고 연산을 진행한다.

입력

첫 번째 줄에 NN이 주어진다.

두 번째 줄에 AA, BB, CC, DD, EE, FF가 공백으로 구분되어 주어진다.

출력

최종 XX값을 출력한다.

제한

  • 1≤N≤10121 \le N \le 10^{12}
  • 1≤A≤B≤C≤D≤E≤F≤1 000 0001 \le A \le B \le C \le D \le E \le F \le 1\,000\,000
  • NN, AA, BB, CC, DD, EE, FF는 양의 정수다.

힌트

비트 연산자는 수를 비트 단위로 계산한다.

비트 AND

각 자리의 두 비트가 모두 11이면 결과 비트는 11이고, 그렇지 않으면 00이다.

예시: 01102=6&  11002=12────01002=4\begin{aligned} 0110_{2} &= 6 \\ \text{\&} \ \ 1100_{2} &= 12 \\ \text{────} \\ 0100_{2} &= 4 \end{aligned}

비트 XOR

각 자리의 두 비트가 서로 다르면 결과 비트는 11이고, 그렇지 않으면 00이다.

예시: 01102=6⊕  11002=12────10102=10\begin{aligned} 0110_{2} &= 6 \\ \text{⊕} \ \ 1100_{2} &= 12 \\ \text{────} \\ 1010_{2} &= 10 \end{aligned}

비트 OR

각 자리의 두 비트 중 하나라도 11이면 결과 비트는 11이고, 그렇지 않으면 00이다.

예시: 01102=6|  11002=12────11102=14\begin{aligned} 0110_{2} &= 6 \\ \text{|} \ \ 1100_{2} &= 12 \\ \text{────} \\ 1110_{2} &= 14 \end{aligned}

비트 오른쪽 시프트

aa >> bb는 aa의 비트를 bb번 오른쪽으로 옮긴다. 왼쪽에서 비게 되는 비트는 00으로 채운다.

예시: 01102 >> 2↓00012\begin{aligned} & 0110_{2} \ \text{>>} \ 2 \\ & \downarrow \\ & 0001_{2} \end{aligned}

예제4

  1. 예제 1

    입력
    3
    1 1 1 1 2 2
    
    예상 출력
    3
    
  2. 예제 2

    입력
    5
    1 2 3 4 5 6
    
    예상 출력
    13
    
  3. 예제 3

    입력
    2023
    1 2 3 5 7 11
    
    예상 출력
    4079
    
  4. 예제 4

    입력
    1234567895
    1 2 4 8 16 32
    
    예상 출력
    2469135770