Завжди був випадок, коли неправильна відповідь завдає занадто багато болю, ніж TLE (Перевищено ліміт часу) оскільки раніше ви не могли визначити, який тестовий приклад не вдається, але пізніше ви можете оцінити, для якого значення N (Загальна інструкція) він покаже TLE.
Отже, що робити в цей час?
Уважно прочитайте питання:
Перший раз, коли ви отримуєте WA (неправильну відповідь), завжди переконайтеся, що ви прочитали кожне слово та повністю зрозуміли запитання, тому що здебільшого ми пропускаємо ту конкретну частину, яка є основою всього запитання.
Перевірте форматування введення/виведення:
Здебільшого програмісти зазвичай забувають додати новий рядок або пробіл відповідно до вимог запитання. Тож перед тим, як подати розв’язок до Інтернет-журні, спробуйте запустити свою програму в онлайн-компіляторах, наприклад code.geeksforgeeks.org або ideone .
Перевірте алгоритм/логіку програми:
Переконайтеся, що ви використовуєте правильну логіку, яка охоплює всі тестові випадки чи ні.
Кутові тестові кейси
Спробуйте запустити свій код на граничних тестових випадках, якщо можливо, наприклад 0 1 2 або N.
Уникайте безглуздих помилок
Ініціалізація змінної:
Іноді ми забуваємо повторно ініціалізувати масиви змінних після кожного тесту T. Наприклад,
Ініціалізуйте значення змінної count рівним 0.
Встановлення всіх значень масиву DP[] на 0 або -1.
Тип даних Переповнення:
Завжди пам’ятайте про обмеження, надані на значення N або інші вхідні дані, і створюйте свою програму в діапазоні правильних типів даних, як-от int long long у C/C++ або int long у JAVA тощо, щоб уникнути переповнення.
Модульна проблема:
У таких питаннях, як «Модульна арифметика» (відповідь % MOD), завжди переконайтеся, що відповідь не отримує від’ємне значення, тому намагайтеся використовувати (відповідь + MOD) % MOD, що охопить усі можливості.
Налагодження
Найважливішою частиною є налагодження:
Ви можете використовувати вбудований налагоджувач Codeblock Eclipse у C/C++ і JAVA відповідно, або ви можете друкувати змінну після кожного рядка, щоб ви могли оцінити, чи ваша програма працює відповідно до ваших вимог, чи ні.
Використовуйте твердження:
Якщо ви збираєтеся написати багато рядків у своєму коді, використання assert() цілком того варте. Натисніть тут щоб дізнатися більше про те, як використовувати Assertion у конкурентному програмуванні.
Шукайте надані пропозиції:
Хоча це має бути останнім кроком, ви повинні переглянути коментарі, наведені нижче, у яких інші програмісти, можливо, також зіткнулися з такою ж проблемою та дали підказку, як викорінити цю проблему.
Зрештою, завжди намагайтеся написати чистий код із невеликою функцією, яка має чітко визначену мету.