Что делать, если решение не проходит в контесте

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

Ниже перечислены основные причины, почему решение может работать медленно или потреблять много памяти

Медленный ввод-вывод

По умолчанию в C++ для iostream включен режим совместимости с stdio, который позволяет одновременно использовать оба интерфейса для ввода/вывода. В этом режиме производительность std::cin и std::cout понижается в несколько раз. Поэтому если размер ввода/вывода имеет порядок от 100 000 чисел, вам нужно будет отключить этот режим. Делать это нужно до совершения каких-либо операций ввода-вывода, желательно первой же строкой в программе:

#include <iostream>

int main() {
    std::ios_base::sync_with_stdio(false);
    ...
    return 0;
}

Также обратите внимание на то, что std::cout может работать слишком медленно, если вы выводите порядка 100 000 чисел или более, и при этом у std::cout регулярно очищается буфер. Буфер очищается при каждом выводе std::endl, так что в случае большого вывода лучше выводить "\n" вместо std::endl. Также буфер std::cout очищается при каждом вводе через std::cin — это связано с тем, что при пользовательском вводе-выводе через обычный std::cin и std::cout в консоли, необходимо показать пользователю последний вывод и очистить буфер перед тем как запрашивать очередной ввод. Эта проблема для задач с большим выводом решается с помощью вызова std::cin.tie(nullptr); в самом начале программы. Выполнение всех этих рекомендаций приведёт к тому, что ввод-вывод при помощи потоков std::cin и std::cout будет работать не медленнее ввода-вывода через printf и scanf на задачах с большим вводом-выводом. Подробнее см. здесь.

Санитайзеры на небольших тестах

В контесте ваше решение на небольших тестах запускается с санитайзером. Санитайзер увеличивает время работы и потреблении памяти программы, поэтому если в решении выделять статический массив максимального размера (например, int arr[100500]), то решение может упасть с ML.