페이지를 불러오는 중…
해결한 사람
1
명
정답률
100.00
%
시간 제한
5
ms
메모리 제한
1024
MB
참고: 이는 문제 Mighty Strings의 (논란의 여지는 있지만) 더 어려운 버전이다.
각 버전에는 점이 배정되어 있음에 유의하라.
두 버전은 문자열이 강력하다는 정의가 약간 다르며, 이 문제에서는 이 더 클 수 있다.
개의 문자열(중복을 포함할 수 있음)이 주어지며, 이를 로 나타낸다.
에서 과 같은 문자열의 개수를 라고 하자. 부분 문자열(부분 문자열은 문자열의 시작 및/또는 끝에서 영 개 이상의 문자를 삭제하여 얻는 연속된 문자들의 수열이다. 문자열에 적어도 하나의 문자가 있으면 비어 있지 않다.) 이 에 등장하는 횟수를 라고 하자. 예를 들어 이다.
문자열 은 다음 조건을 만족하면 강력하다.
에 있는 문자열 중 강력한 문자열의 개수를 구하여라.
제출한 풀이는 여러 테스트 그룹으로 이루어진 테스트에서 평가된다. 한 그룹의 점수를 얻으려면 그 그룹의 모든 테스트 케이스를 통과해야 한다.
그룹 | 점수 | 제한
||
||
||
||
|| 추가 제한 없음.
입력의 첫째 줄에는 문자열의 개수를 나타내는 정수 ()이 주어진다.
이어지는 개의 줄에는 각각 문자 a-z로 이루어진 비어 있지 않은 문자열이 주어진다.
이 문자열들이 를 이룬다.
에 있는 모든 문자열의 길이의 합을 이라고 하자. 임이 보장된다. 입력의 양이 매우 많으므로 입력을 읽는 과정의 성능에 유의하라.
강력한 문자열의 개수를 나타내는 정수를 출력한다.
3
a
aa
aaa
1
5
abc
a
ab
c
b
4
3
z
z
z
3
예제 에서 a은 강력하다. 유일한 부분 문자열이 a이고, 이는 에 있기 때문이다.
그러나 aa은 강력하지 않다. 부분 문자열은 a, a, aa이다.
a은 에 한 번만 등장하지만, aa에는 a이 부분 문자열로 두 번 등장한다.
비슷한 이유로 aaa도 강력하지 않다.
예제 에서는 abc을 제외한 모든 문자열이 강력하다. abc은 부분 문자열 bc이 에 존재하지 않으므로 강력하지 않다.
Chalmers Coding Club
로그인 상태를 확인하는 중입니다.