칵테일 파티
시간 제한1초메모리 제한1024 MB
길이 r인 부분 문자열이 같은 컵 쌍의 개수를 r=0부터 n-1까지 각각 세고, 그런 두 컵을 섞었을 때 얻는 최대 맛의 곱을 구합니다.
문제
길이가 인 문자열이 주어진다. 이 문자열은 개의 칵테일 컵에 붙은 라벨이며, 각 번째 컵의 라벨은 이다. 모든 라벨은 소문자 영어 알파벳 26개 중 하나이다. 은 번째 컵부터 번째 컵까지의 라벨로 이루어진 문자열이다. , , , 일 때 이면, 번째 컵과 번째 컵을 -similar하다고 한다. 어떤 에 대해 두 컵이 -similar하면, 이 두 컵은 -similar, -similar, ..., -similar하기도 하다. 이고 인 모든 두 컵은 -similar하다.
Freda는 각 컵에 맛있는 정도 를 매겼다. 번째 컵과 번째 컵을 섞으면 맛있는 정도가 인 칵테일이 만들어진다. 마다 -similar한 두 컵을 고르는 방법의 수와, -similar한 두 컵을 섞어 얻을 수 있는 맛있는 정도의 최댓값을 구하라.
입력
첫째 줄에 컵의 개수 이 주어진다. 둘째 줄에는 길이가 인 문자열 가 주어지며, 번째 문자가 번째 컵의 라벨이다. 셋째 줄에는 개의 정수가 공백으로 구분되어 주어지며, 번째 정수가 이다.
출력
개의 줄을 출력한다. 번째 줄에는 두 정수를 공백으로 구분하여 출력한다. 첫 번째 정수는 -similar한 두 컵을 고르는 방법의 수이고, 두 번째 정수는 -similar한 두 컵을 섞어 얻을 수 있는 맛있는 정도의 최댓값이다. -similar한 두 컵이 존재하지 않으면 그 줄에 0 0을 출력한다.
제한