N차원 여행

N차원 정수 격자 위의 이동을 좌표 인덱스와 부호의 목록으로 받아, 시작점과 끝점을 포함해 방문한 모든 점이 서로 다른지 판별한다.

보통5해시맵구현수학시뮬레이션면접 대비아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

수빈이는 여행을 좋아한다. 지구에서 더 갈 곳이 없어진 수빈이는 N차원 우주로 여행을 떠났다. 이 우주의 점은 좌표 N개로 나타내고, 각 좌표에는 1부터 N까지 인덱스가 붙어 있다.

수빈이는 원점(모든 좌표가 0인 점)에서 출발하며, 한 번 움직일 때마다 다음 두 단계를 거친다.

  • 움직일 좌표의 인덱스를 1부터 N 중에서 하나 고른다.
  • 그 좌표의 값을 1 늘린 점이나 1 줄인 점으로 이동한다. 나머지 좌표는 이동 전과 같아야 한다.

수빈이는 떠나기 전에 여행 계획을 적어 두었다. 계획에는 이동마다 고른 좌표의 인덱스와, 그 좌표를 늘리는 방향으로 갔는지 줄이는 방향으로 갔는지가 순서대로 적혀 있다.

계획을 그대로 따라갔을 때 출발점과 마지막 점을 포함한 모든 점을 한 번씩만 방문하면 1을, 같은 점을 두 번 이상 방문하면 0을 출력하는 프로그램을 작성하시오.

입력

첫째 줄에 차원의 수 NN이 주어진다. (1N1091 \le N \le 10^9)

둘째 줄에 여행 계획의 길이 MM이 주어진다. (1M501 \le M \le 50)

셋째 줄에 계획에서 고른 좌표의 인덱스 MM개가 이동 순서대로 공백으로 구분되어 주어진다. 각 인덱스는 11 이상 NN 이하이다.

넷째 줄에 길이 MM인 문자열이 주어진다. 이 문자열의 ii번째 문자가 +이면 ii번째 이동에서 좌표를 1 늘리고, -이면 1 줄인다.

출력

모든 점을 한 번씩만 방문하면 1을, 아니면 0을 출력한다.

힌트

2차원에서 인덱스 1, 2, 1, 2를 고르고 방향이 차례로 +, +, -, -이면 (0,0)(1,0)(1,1)(0,1)(0,0)(0,0) \to (1,0) \to (1,1) \to (0,1) \to (0,0)으로 움직여 (0,0)(0,0)을 두 번 방문한다.

3차원에서 인덱스 1, 2, 3, 1, 2를 고르고 방향이 차례로 +, +, +, -, -이면 (0,0,0)(1,0,0)(1,1,0)(1,1,1)(0,1,1)(0,0,1)(0,0,0) \to (1,0,0) \to (1,1,0) \to (1,1,1) \to (0,1,1) \to (0,0,1)으로 움직여 어떤 점도 두 번 방문하지 않는다.