연산자 파티

아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

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

ii11부터 NN까지 11씩 증가할 때마다 아래 조건에 맞게 연산을 진행한다. NN까지 연산을 모두 마쳤을 때, 최종 XX값을 출력하시오.

  • iiAA의 배수라면 XX = XX + ii를 한다. (+는 더하기 연산자이다.)
  • iiBB의 배수라면 XX = XX % ii를 한다. (%는 나머지 연산자이다.)
  • iiCC의 배수라면 XX = XX & ii를 한다. (&는 Bitwise AND 연산자이다.)
  • iiDD의 배수라면 XX = XXii를 한다. (⊕는 Bitwise XOR 연산자이다.)
  • iiEE의 배수라면 XX = XX | ii를 한다. (|는 Bitwise OR 연산자이다.)
  • iiFF의 배수라면 XX = XX >> ii를 한다. (>>는 Bitwise Right Shift 연산자이다.)
  • 한 번에 여러 연산을 시행해야 한다면 +, %, &, ⊕, |, >> 우선순위로 연산을 진행한다.

입력

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

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

출력

최종 XX값을 출력한다.

제한

  • 1N10121 \le N \le 10^{12}
  • 1ABCDEF1,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는 양의 정수다.

힌트

Bitwise 연산자들은 비트 단위로 연산을 시행한다.

  • Bitwise AND

    • 두 수의 각 비트마다 아래와 같은 연산을 진행한다.
      • 두 비트가 모두 11이면 결과가 11이고, 그렇지 않으면 00이다.
    • 예시
      • \begin{aligned} 0110\_{2} &= 6 \\\ \text{&} \ \ 1100\_{2} &= 12 \\\ \text{────} \\\ 0100\_{2} &= 4 \end{aligned}
  • Bitwise XOR

    • 두 수의 각 비트마다 아래와 같은 연산을 진행한다.
      • 두 비트가 서로 다르면 결과가 11이고, 그렇지 않으면 00이다.
    • 예시
      • 0110_2=6 ⊕  1100_2=12 ──── 1010_2=10\begin{aligned} 0110\_{2} &= 6 \\\ \text{⊕} \ \ 1100\_{2} &= 12 \\\ \text{────} \\\ 1010\_{2} &= 10 \end{aligned}
  • Bitwise OR

    • 두 수의 각 비트마다 아래와 같은 연산을 진행한다.
      • 두 비트 중 하나라도 11이면 결과가 11이고, 그렇지 않으면 00이다.
    • 예시
      • 0110_2=6 |  1100_2=12 ──── 1110_2=14\begin{aligned} 0110\_{2} &= 6 \\\ \text{|} \ \ 1100\_{2} &= 12 \\\ \text{────} \\\ 1110\_{2} &= 14 \end{aligned}
  • Bitwise Right Shift

    • aa >> bb일 때, aa의 비트를 bb번 오른쪽 이동한다.
      • 오른쪽으로 이동된 수만큼 비게 되는 왼쪽 비트는 00으로 채워진다.
    • 예시
      • 0110_2 >> 2  0001_2\begin{aligned} & 0110\_{2} \ \text{>>} \ 2 \\\ & \downarrow \\\ & 0001\_{2} \end{aligned}