만드는 중입니다

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

링크 줄이기

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

요약
글자 수 제한 l과 메시지가 주어질 때, 메시지의 http:// 링크를 왼쪽부터 차례로 앞부분과 "..."으로 줄여 제한 안에 맞춥니다.
난이도

보통10점 중 4점

유형
문자열, 시뮬레이션, 그리디
정답자
아직 제출이 없습니다

문제

Vasya는 자신만의 소셜 네트워크를 만들기로 했다. 누구나 다른 사용자에게 메시지를 쓸 수 있지만, 메시지는 최대 ll자까지만 쓸 수 있다. 글자 수 제한은 날마다 바뀐다.

Vasya는 사이트를 완성해서 친구 Petya에게 보여주었다. Petya는 메시지에 정보를 더 담을 수 있도록 링크를 줄이자고 제안했다. Vasya가 링크 압축 기능을 구현하도록 도와라.

링크는 http://로 시작하고, 그 뒤에 소문자 영문자, 숫자, /, :, . 기호가 이어지는 문자열이다. http:// 뒤에는 최소 한 글자가 있어야 한다. 링크 앞에는 공백이나 줄의 시작이 오고, 링크 뒤에는 공백이나 줄의 끝이 온다.

줄인 링크는 원래 링크의 앞부분(0글자 이상)에 점 세 개 ...를 붙인 것이다. 앞부분은 가능한 한 길게 남긴다. 링크는 왼쪽부터 차례로 처리한다. 각 링크는 메시지가 ll자 이내가 되는 데 필요한 만큼만 줄인다. ...까지 줄여도 메시지가 여전히 넘치면 그 링크는 ...로 두고 다음 링크로 넘어간다.

예를 들어 http://pda.lenta.ru/news/2012/01/09/sudoku/는 http://pda.lenta.ru/news/2012/01/0...나 ...로 줄일 수 있다.

입력

첫 번째 줄에 메시지 길이의 상한 ll이 주어진다 (2≤l≤100002 \le l \le 10000). 두 번째 줄에 메시지 ss가 주어진다. 메시지는 비어 있지 않고, 최대 10000자이며, 메시지에 포함되지 않는 줄바꿈 문자로 끝난다. 메시지에는 링크가 하나 이상 있다.

출력

첫 번째 줄에 압축된 메시지를 출력한다. 두 번째 줄에는 압축된 메시지가 상한 안에 들어가면 0을, 그렇지 않으면 상한을 초과한 글자 수를 출력한다.

예제4

  1. 예제 1

    입력
    67
    Visit http://olympiads.ru/zaoch/ and http://acm.timus.ru --- it's interesting.
    
    예상 출력
    Visit http://olymp... and http://acm.timus.ru --- it's interesting.
    0
    
  2. 예제 2

    입력
    46
    Visit http://olympiads.ru/zaoch/ and http://acm.timus.ru --- it's interesting.
    
    예상 출력
    Visit ... and http://... --- it's interesting.
    0
    
  3. 예제 3

    입력
    30
    Visit http://olympiads.ru/zaoch/ and http://acm.timus.ru --- it's interesting.
    
    예상 출력
    Visit ... and ... --- it's interesting.
    9
    
  4. 예제 4

    입력
    81
    This link is not valid http://iojury@gmail.com but this one is valid http://godzilla
    
    예상 출력
    This link is not valid http://iojury@gmail.com but this one is valid http://go...
    0