Школа программиста

Забыли пароль?
[задачи] [курсы] [олимпиады] [регистрация]
Логин:   Пароль:    
Скрыть меню
О школе
Правила
Олимпиады
Фотоальбом
Гостевая
Форум
Архив олимпиад
Архив задач
Состояние системы
Рейтинг
Курсы
Новичкам
Работа в системе
Курсы ККДП
Дистрибутивы
Статьи
Ссылки


 
Вернуться
Тема: 1220 Суперсдвиг JS
1
  1  Березин Дмитрий, 11 мая 2024 г. 9:33:33
      Как и предполагалось, причина была в лишнем пробеле в конце 2-й строки 2-го теста.
  2  Березин Дмитрий, 08 мая 2024 г. 15:51:23
      Второе, что интересует:
При использовании предложенных в "Работа в системе" вариантов чтения данных неизбежно получаешь Memory limit exceeded.
По крайней мере, я не нашел простого способа их оптимизировать.

Решение 21507186 является одной из таких попыток, но, во-первых, оно, очевидно, валится на 2-м тесте при использовании любого из упомянутых выше алгоритмов по невыясненной пока причине, а во-вторых, оно не выглядит надежным, т.к. не будет работать при использовании во входных данных любых разделителей, кроме одиночного пробела и перевода строки. То есть любой лишний пробел в конце строки уже завалит решение. Возможно, это как раз то, что в данном случае происходит.

А писать дополнительный слой проверок на возможные комбинации разделителей - это, на мой взгляд, уже за пределами решения задачи на 20% сложности вроде этой.

Соответственно, вопрос: может, стоит повысить предел памяти для этой задачи, чтобы стандартный вариант чтения проходил?

Или, если у администрации (или топ юзеров сайта) есть предложения по оптимизации памяти для решений на JS (или других языках), буду рад ознакомиться.
  3  Березин Дмитрий, 08 мая 2024 г. 15:04:26
      В частности, интересует, почему вот это:

function solve({ n, array, shift }) {
const out = [];

for (let i = 0; i < n; i++) {
out.push(array[((i - shift) % n + n) % n])
}

return out.join(' ');
}

проходит до 10-го теста, а это:

function solve({ n, array, shift }) {
const x = (n - shift % n) % n;
return array.slice(x).join(' ') + ' ' + array.slice(0, x).join(' ');
}

только до 2-го.
  4  Березин Дмитрий, 08 мая 2024 г. 14:27:35
      День добрый. Мое терпение на этой задаче закончилось.

Кто-нибудь может подсказать, в чем проблема этих решений и почему они валятся на 2 тесте?

https://acmp.ru/index.asp?main=source&id=21507303
https://acmp.ru/index.asp?main=source&id=21507186
https://acmp.ru/index.asp?main=source&id=21507382
1

Чтобы оставить сообщение необходимо зарегистрироваться и авторизоваться!

Красноярский краевой Дворец пионеров, (c)2006 - 2026, ИНН 246305493507, E-mail: admin@acmp.ru



тромбитал как принимать