Перед тем, как задавать вопрос мне, пожалуйста, подумайте сперва, тестили ли вы уже свой код? Как вы его тестили?

Первые 5 вещей, которые я чаще всего делаю, получив вопрос "у меня что-то не так":
1. Если WA: запускаю на среднем случайном тесте, сравниваю ответ с простым решением
2. Если WA: думаю про переполнения, про крайние случаи
3. Если TL: запускаю на большом случайном тесте, наблюдаю, как оно висит..
4. Если TL: меняю ввод-вывод на быстрый
5. Если TL или ML: считаю, какая асимптотика решения, если не получается посчитать, запускаю на большом тесте и считаю через "counter++" число операций.
   Грамотные люди в этом месте могут запустить свой любимый profiler.
   Насчитал 10^9 операций или 10^9 памяти? Логика решения не верна. Это неверное решение. Кстати, понять это можно было еще до написания.

Чаще всего вы можете делать это самостоятельно.

--

Чуть более подробная инструкция:

1. Ваша программа не работает на первом тесте?

1.1. Java? В первой строчке есть слово package? Уберите эту строку, класс должен лежать в стандартном package.

1.2. Проверьте, что тест в системе такой же, а заодно что вы его корректно читаете: прочитайте тест, выведите тест в stderr (cerr, System.err)

1.3. А выводите вы точно то, что просят? Может быть, просят "3  1 2 3", а вы пишите просто "1 2 3".

2. Локально моя программа на этом тесте работает хорошо. А в системе выдает другой ответ.

2.1. C++? Может быть, неинициализироанные переменные или выход за пределы массива? Как лечить?

2.1.1. Вы компилируете с -Wall, у вас есть warning-и? Если есть, исправьте.

2.1.2. Проверьте ограничения на размеры массива, проверьте, что нигде не перепутали n, m, w, h (в условии, при чтении, в коде). Можно попробовать просто все массивы сделать размера 10^7 и заслать.

2.1.3. Убедитесь, что умеете читать данные: прочитайте тест, выведите тест в stderr (cerr, System.err)

2.2. В общем случае: больше дебаг-вывода в stderr, выводите все подряд и ищите разницу того, что выводится локально и на сервере.

3. Моя программа получает TL 9, как мне соптимизить?

3.1. Чтение данных (cin -> cin + sync_with_stio(0) -> scanf) (Scanner -> BufferedReader -> MyReader), аналогично с выводом. Если лучше не стало, читаем дальше.

3.2. А программа вообще должна работать? Сколько у вас работает на макстесте? Сгенерите случайный большой тест, запустите.

3.2.1. Висит? Ха-ха.

3.2.2. Работает долго? Проверьте асимптотику, для этого посчитайте, сколько операций делает ваша программа (вставьте counter++ везде и в конце вывести counter). На что больше похоже? На n^2 при n <= 10^5? Ошибка в логике.

3.3. Локально на макстесте работает быстро, данные читаются нормально, в системе TL... Мы только что считали counter. Поставьте везде assert(counter <= int(1e8)). Runtime Error? Знначит, на сервере ваша программа таки делает слишком много операций. У жюри есть хороший тест.

4. Моя программа получает WA 6, почему так?

4.1. Переполнения? В смысле int на long long заменить и т.д. Если видите отрицательные числа там, где их не должно быть, это точно оно.

4.2. А простое решение (например, за квадрат) вы засылали в систему? Оно работает? (это в частности способ проверить, что вы корректно поняли условие задачи)

4.3. А тест у вас есть на котором не работает? 

4.3.1. Вбейте руками минтест (n=1,2..) и макстест (n=10^5,..).

4.3.2. У вас есть "тупое" решение, которое получает в системе TL и "правильное" решение, которое получает в системе WA, но нет теста, на котором они работают по-разному? 
       Стресс-тест! Много случайных маленьких тестов, много случайных средних тестов, больших тестов. Достаточно примерно 100 000 тестов прогнать, и будет счастье.

4.3.3. Есть программа и есть тест? (кстати, удобно, когда он поменьше) Вперед, дебажить.