Блог пользователя kb.

Автор kb., 14 лет назад, По-русски

Здравствуйте! На последнем раунде (#72) для второго дивизиона была отличная для взломов задача B. Но не одного взлома у меня сделать не получилось :(

Что я сделал:

1) Сгенерировал макс. тест вида 100000\n<число 1 100000 раз через пробел>

2) Открыл окно взлома, вставил туда тест, нажал взломать. Мне выдало ошибку, точный текст ее я не помню (кстати, можно ли сейчас это где-нибудь посмотреть?), но было что-то вроде Unexpected character #13, expected ' '. Где он нашел лишний перевод строки - непонятно.

3) Взял генератор, сделал вывод в стандартный поток, отправил код. Результат - ошибка вида Input can't be empty. Может, не в cout нужно выводить?

Собственно, подскажите, как же правильно ломать?

З.Ы.: Когда я хотел написать это через Chrome, вместо русских символов печатались квадратики. Через IE такой проблемы не наблюдается. Это старый баг или мои локальные проблемы?

  • Проголосовать: нравится
  • 0
  • Проголосовать: не нравится

14 лет назад, # |
Rev. 2   Проголосовать: нравится +7 Проголосовать: не нравится

1) В окошко можно только небольшие тесты вставлять

2) Если хотим отослать генератор, выбираем компилятор, выбираем ФАЙЛ (а не вставляем код генератора в окошко).
Например, такой код заработает:
cout << 100000 << "\n";
for (int i = 1; i <= 100000; i++)
{
    cout << 1;
    cout << (i < 100000) ? " " : "\n"; // последний символ - перевод строки!!!
}

Здесь все взломы, как я понимаю, прогоняются сначала на специальной программе - валидаторе. А валидаторы обычно (т.е. как захочет автор) требуют строгого соблюдения формата входных данных, с точностью до пробелов, переводов строк, ограничений и т.д.
  • 14 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Спасибо большое! Я все таки отправлял файл, а не вставлял код, но вот перевод строки не выводил, хотя сейчас понимаю, что это логично. Жаль, мог бы набрать минимум 100 лишних баллов :)