URL Validator
(Время: 1 сек. Память: 16 Мб Сложность: 55%)
Для идентификации ресурсов в сети Internet используются URL (Uniform Resource Locator). URL состоит из нескольких элементов: протокол, хост, порт, путь и файл. Некоторые элементы URL могут быть опущены. Рассмотрим упрощенный формат URL:
[http://]host[:port][/path][/file]
Заключенные в квадратные скобки элементы могут быть опущены, то есть, например, можно не указать протокол или файл. Элемент host представляет собой либо IP-адрес – четыре целых числа без лидирующих нулей от 0 до 255, разделенные точкой (например, 212.193.39.146), либо строковое имя ресурса. Во втором случае имя имеет вид prefix.domain, либо это просто имя компьютера.
В первом случае prefix это последовательность одного или более слов, разделенных точкой, а domain – слово из английских букв длиной 2 или 3 символа. А в случае, если host является просто именем компьютера, то host – это одно слово.
Элемент port – это целое число от 0 до 65535 без лидирующих нулей.
Элемент path – это последовательность одного или более слов, разделенных символом «/» (код 47).
Элемент file – это нуль или более слов, разделенных символом точка «.» (код 46).
Слово – это последовательность из одного или более символов. Если не оговорено специально, то допустимыми символами слова считаются английские буквы произвольного регистра, цифры и символ подчеркивание «_» (код 95).
Входные данные
Входной файл INPUT.TXT содержит не более 10000 строк. Все строки содержат символы с кодами от 33 до 127 включительно. Длина каждой строки не превосходит 1000 символов. Размер файла не превосходит 500Кб. Помните, что любой тест (как и любой корректный тестовый файл) заканчивается символом перевода строки.
Выходные данные
В выходной файл OUTPUT.TXT для каждой из строк выведите в отдельной строке «YES», если строка представляет корректную запись URL, либо «NO» в противном случае.
Пример
№ | INPUT.TXT | OUTPUT.TXT |
1 | http://acm.sgu.ru/index.html
212.193.39/index.jsp
http://acm.sgu.ru/01/index.php
212.193.39.146/start/index.jsp | YES
NO
YES
YES |
Для отправки решения задачи необходимо зарегистрироваться и авторизоваться!
|