아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

명령어 애너그램

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

요약
P가 S의 애너그램이고 특정 시각의 로봇 위치를 알 때, 관측과 모순되지 않는 문자열 S의 개수를 구한다.
난이도

어려움10점 중 9점

유형
조합론, 수학, 동적 계획법, 누적 합
정답자
아직 제출이 없습니다

문제

로봇이 2차원 좌표평면의 원점, 즉 (0, 0)에 놓여 있다. 로봇은 {N, E, S, W}로 이루어진 N글자 문자열 S를 명령으로 받는다. 문자열의 처음부터 각 글자에 대해 로봇은 다음 방향으로 1만큼 이동해야 한다.

  • 글자가 N이면 로봇은 y축 양의 방향으로 1만큼 이동한다.
  • 글자가 E이면 로봇은 x축 양의 방향으로 1만큼 이동한다.
  • 글자가 S이면 로봇은 y축 음의 방향으로 1만큼 이동한다.
  • 글자가 W이면 로봇은 x축 음의 방향으로 1만큼 이동한다.

문자열 S는 알지 못한다. 대신 S의 애너그램인 문자열 P를 알고 있다. 즉 P는 S와 N, E, S, W의 개수가 각각 같다. 또한 M개의 데이터 (Ti, Xi, Yi)를 알고 있다. 모든 i에 대해 로봇이 정확히 Ti만큼 이동한 뒤 위치 (Xi, Yi)에 있다는 것을 안다.

주어진 정보를 모두 만족하는 가능한 문자열 S의 개수를 구하려고 한다.

입력

첫 줄에 두 정수 N, M이 주어진다. (1 ≤ M ≤ N ≤ 400 000) N은 P의 글자 수, M은 데이터의 개수이다. 다음 줄에 {N, E, S, W}로 이루어진 N글자 문자열 P가 주어진다. 다음 M개 줄에 각각 세 정수 Ti, Xi, Yi가 주어진다. (1 ≤ Ti ≤ N; −Ti ≤ Xi, Yi ≤ Ti) 모든 i에 대해 Ti < Ti+1임이 보장된다.

출력

주어진 정보를 모두 만족하는 가능한 문자열 S의 개수를 998 244 353으로 나눈 나머지를 한 줄에 출력한다. (잘못된 정보 등으로) 가능한 문자열 S가 없으면 0을 출력한다.

예제3

  1. 예제 1

    입력
    4 2
    SNEN
    2 1 1
    4 1 1
    
    예상 출력
    4
    
  2. 예제 2

    입력
    5 1
    SSSSN
    4 0 -4
    
    예상 출력
    1
    
  3. 예제 3

    입력
    7 1
    NNNNSSS
    4 1 -1
    
    예상 출력
    0