만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

특별한

시간 제한0.4초메모리 제한1024 MB

요약
문자열에서 모든 문자가 서로 다른 가장 긴 부분 문자열을 찾아 길이와 시작 위치, 그리고 그 부분 문자열을 출력한다.
난이도

쉬움10점 중 3점

유형
슬라이딩 윈도우, 문자열, 투 포인터, 해시맵
정답자
아직 제출이 없습니다

문제

표준 인쇄 문자(ASCII 표에서 33번부터 126번 자리를 차지하는 소문자, 대문자 라틴 문자, 숫자, 문장 부호)로 이루어진 문자열 ss가 주어진다. 주어진 문자열에서 연속으로 놓인 문자들로 구성된 부분 문자열 가운데, 같은 문자가 두 번 들어 있지 않은 것을 특별하다고 부른다. 주어진 문자열 ss를 읽어 가장 긴 특별한 부분 문자열을 찾는 프로그램 strange를 작성하시오.

입력

표준 입력에 주어진 문자열 ss가 쓰여 있다.

출력

프로그램은 표준 출력의 첫째 줄에 두 정수(정확히 하나의 공백으로 구분)를 출력해야 한다. 찾는 가장 긴 특별한 부분 문자열의 길이와, 그 특별한 문자열이 주어진 문자열에서 시작하는 위치(0부터 센다)이다. 둘째 줄에는 찾는 가장 긴 특별한 부분 문자열을 출력해야 한다. 주어진 문자열에 가장 긴 특별한 부분 문자열이 둘 이상 있으면, 그중 주어진 문자열에서 가장 오른쪽에 있는 것을 찾아 출력해야 한다.

제한

제한: 주어진 문자열의 길이는 1자 이상 20 000 000자 이하이다.

예제1

  1. 예제 1

    입력
    abcaacxaa
    
    예상 출력
    3 5
    cxa