ENG  RUSTimus Online Judge
Online Judge
Задачи
Авторы
Соревнования
О системе
Часто задаваемые вопросы
Новости сайта
Форум
Ссылки
Архив задач
Отправить на проверку
Состояние проверки
Руководство
Регистрация
Исправить данные
Рейтинг авторов
Текущее соревнование
Расписание
Прошедшие соревнования
Правила

1307. Архиватор

Ограничение времени: 1.0 секунды
Ограничение памяти: 4 МБ
Как правило, жюри олимпиад по программированию норовит дать к каждой задаче «сказку», цели которой — наметить мнимую связь задачи с реальностью, а также замутить воду вокруг сути задачи, особенно если условие задачи кажется слишком простым для понимания. Однако в данной задаче сказки не будет – во-первых, потому, что условие является достаточно непростым и необычным, а во-вторых, потому что сама задача — о краткости.
Пусть дан некоторый текст. Архивом этого текста называется текст, удовлетворяющий следующим требованиям:
  1. Архив является программой на одном из языков программирования, допустимых правилами соревнований.
  2. Первой строкой архива является либо строка «{PAS}», либо строка «/*C*/», либо строка «//CPP».
  3. Если архив скомпилировать и выполнить, то программа выведет текст, в точности совпадающий с исходным.
  4. Размер архива строго меньше размера исходного текста.
Требуется написать программу, которая по заданному тексту строит его архив. При проверке решения архив компилируется и исполняется с использованием тех же ограничений, параметров и условий, что и решения участников. Архив не обязательно должен быть программой на том же языке, что и решение. При проверке, жюри определяет язык архива по его первой строке («{PAS}» — Pascal/Delphi, «/*С*/» — С, «//CPP» — C++).

Исходные данные

Текст длиной не менее 20000 и не более 200000 символов. Текст может содержать большие и маленькие латинские буквы, цифры, знаки препинания, пробелы, переводы строк, кавычки. Гарантируется, что все тексты, использованные в качестве тестов к задаче, являются литературными текстами на английском языке.

Результат

Архив исходного текста.

Пример

исходные данные
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
результат
//CPP
#include<iostream.h>
int main()
{for(int i=1;i<58;i++)cout<<i;return 0;}

Замечания

Пример входа является условным, поскольку не удовлетворяет требованиям литературности и минимальной длины.
Автор задачи: Идея — Леонид Волков, подготовка — Павел Егоров, Леонид Волков
Источник задачи: VIII Командный студенческий чемпионат Урала по программированию. Екатеринбург, 11-16 марта 2004 г.