Подробная информация о цели написания программы дается по ссылке: https://www.codechef.com/problems/COOKMACH/У меня есть предел Превышена ошибка в C. Как мне его преодолеть?
и ошибка
Ограничение по времени превысил
Sub-Task Task # Score Result (time)
1 0 NA AC (0.000000)
1 1 NA TLE (1.010000)
1 2 NA TLE (1.010000)
1 3 NA TLE (1.010000)
Final Score -> 0.000000 Result - TLE
2 4 NA TLE (1.010000)
2 5 NA TLE (1.010000)
2 6 NA TLE (1.010000)
7 NA WA (0.000000)
Окончательный счет - 0,000000 Результат - TLE
код
#include <stdio.h>
int main(void)
{
int test, set, des, a = 1, ctr = 0, str = 0, x;
scanf("%d", &test);
if (test > 0 && test <= 200)
{
for (x = 0; x < test; x++)
{
ctr = 0;
scanf("%d", &set);
scanf(" %d\n", &des);
if ((set > 0 && set <= 10000000) && (des > 0 && des <= 10000000))
{
if (set <= 100 && des <= 100)
{
if (set == des)
ctr = 0;
if (set == 1)
{
while (set != des)
{
set = set * 2;
ctr++;
}
}
else if (set != 1)
{
if (des % 2 == 0)
{
while (a < des)
{
a = a * 2;
str++;
}
}
if (a == des || des == 1)
{
if (set < des)
{
if (set % 2 == 0)
{
while (set != des)
{
set = set * 2;
ctr++;
}
}
else if (set % 2 == 1)
{
set = (set - 1)/2;
ctr++;
while (set != des)
{
set = set * 2;
ctr++;
}
}
}
if (set > des)
{
if (set % 2 == 0)
{
while (set != des)
{
set = set/2;
ctr++;
}
}
else if (set % 2 == 1)
{
set = (set - 1)/2;
ctr++;
while (set != des)
{
set = set/2;
ctr++;
}
}
}
}
}
}
printf("%d\n", ctr);
}
}
return 0;
}
}
«Как его преодолеть?» - Код быстрее. (Извините, этот ответ примерно так же полезен, как и вопрос, я знаю.) Отладка 101: код, ввод, ожидаемый результат, наблюдаемый вывод. Было бы неплохо, если бы какой-то смысл мог быть сделан из этого вопроса, не пройдя через внешнюю ссылку. Комментарии также не будут ошибочными. – DevSolar
Некоторые из этих 'if' можно удалить, поскольку указано, что «_1 ≤ T ≤ 200, 1 ≤ A ≤ 107, 1 ≤ B ≤ 107_». Кроме того, 'scanf ("% d \ n ", &des);' -> 'scanf ("% d ", &des);' –
Эй, глупая идея здесь: можете ли вы попробовать использовать scanf ("% d \ n", &test); для количество строк ввода. Возможно, ваша программа блокирует ожидание числа, когда он получает символ «\ n». Я думаю, что @CoolGuy прав: вам не нужно проверять ограничения, которые они больше похожи на контракт на входе чтобы помочь вам. –