Logo
(追記) (追記ここまで)

24528번 - 단어의 개수

시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 1024 MB2501047237.306%

문제

알파벳 소문자로 이루어진 문자열 $S$가 주어진다. 이 문자열 $S$는 매우 길 수 있기 때문에 '압축 문자열'의 형태로 입력이 주어진다. '압축 문자열'은 $(c_i, v_i)$ 형태의 순서 쌍이 여러 개 나열된 형태로 표현된다. 주어진 '압축 문자열'을 문자열 $S$로 복원하는 과정은 다음과 같다.

  1. 최초의 문자열 $S$ 는 비어있다.
  2. $i=1, 2, \cdots , N$ 에 대하여 차례대로 문자열 $S$의 맨 뒤에 문자 $c_i$를 연속하여 $v_i$ 개 덧붙인다.

예를 들어, $(a,4),ドル $(b,3),ドル $(c,2),ドル $(d,1),ドル $(a,1)$ 로 주어진 '압축 문자열'을 복원한 문자열 $S$는 $S=aaaabbbccda$ 이다.

이때, $S$ 의 서로 다른 subsequence 의 개수를 구하여라. 값이 매우 클 수 있으니 998244353으로 나눈 나머지를 출력하도록 한다. subsequence $X,ドル $Y$가 서로 다르다는 것은, $|X| \ne |Y|$ 이거나, $|X| = |Y|$ 이면서 어떤 $i$에 대해 $X_i \ne{} Y_i,ドル 1ドル \le{} i \le{} |X|$가 성립함을 의미한다.

입력

첫째 줄에 문자열 $S$ 의 압축 문자열의 순서쌍 개수를 의미하는 $N (1 \le N \le 1,000,000)$ 이 주어진다.

다음 줄부터 $N$ 줄에 걸쳐 압축 문자열의 $i$번째 순서쌍 $(c_i,v_i)$ 가 차례대로 주어진다. $c_i$ 는 알파벳 소문자이고, $v_i (1 \le v_i \le 10^9)$ 는 개수를 의미한다. 또한 1ドル<i$ 일 때, $c_{i-1} \ne c_i$ 이다.

출력

서로 다른 subsequence 의 개수를 998244353으로 나눈 나머지를 출력하라.

제한

예제 입력 1

3
a 3
b 3
c 3

예제 출력 1

63

힌트

subsequence 란 주어진 문자열의 일부 항을 원래 순서대로 나열하여 얻을 수 있는 문자열을 의미한다.

출처

University > 성균관대학교 > 2022 성균관대학교 프로그래밍 경진대회 F번

(追記) (追記ここまで)

출처

대학교 대회

  • 사업자 등록 번호: 541-88-00682
  • 대표자명: 최백준
  • 주소: 서울시 서초구 서초대로74길 29 서초파라곤 412호
  • 전화번호: 02-521-0487 (이메일로 연락 주세요)
  • 이메일: contacts@startlink.io
  • 통신판매신고번호: 제 2017-서울서초-2193 호

AltStyle によって変換されたページ (->オリジナル) /