Я решал вопрос. Но я что-то упустил. Есть какой-то тестовый случай, для которого мое решение неверно. Мне нужно найти этот контрольный пример.
В другой подзадаче говорится, что выполнение заняло слишком много времени.
Шеф получит доступ к Дискурсу, если его знания и сила станут точно равными N и M соответственно. Изначально у него есть сила
1 и знания 1.
Шеф-повар может выполнять действия следующих типов для улучшения своих навыков:
- Решите задачу - увеличьте свои знания на X
- сделать отжимание - увеличьте его силу на Y
- установите ShareChat, чтобы поддерживать связь с друзьями - увеличьте свои знания и возможности на 1
Шеф-повар может установить ShareChat не более одного раза. Остальные действия могут быть выполнены любое количество раз, и действия могут быть
выполняется в любом порядке.
Помогите шеф-повару выяснить, можно ли перейти от обсуждения к обсуждению.
Input
Первая строка ввода содержит одно целое число T, обозначающее количество тестовых случаев. Описание T-тестов приведено ниже.
Первая и единственная строка каждого теста содержит четыре целых числа через пробел: N, M, X и Y.
выход
Для каждого теста выведите одну строку, содержащую строку «Chefirnemo», если есть возможность получить необходимые знания и
мощность или "пофик", если это невозможно
Вы также можете посетить эту ссылку, чтобы прочитать вопрос
Ссылка на вопрос https://www.codechef.com/SEPT18B/problems/CHEFADV
Мое решение -
#include<stdio.h>
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
long int n,m,x,y,power,know;
scanf("%ld%ld%ld%ld",&n,&m,&x,&y);
power=1;
know=1;
if(power+1==m && know+1==n)
printf("Chefirnemo\n");
else {
while(power+y<m)
power=power+y;
if(power+y==m)
power=power+y;
while(know+x<n)
know=know+x;
if(know+x==n)
know=know+x;
if(power==m && know==n)
printf("Chefirnemo\n");
else if(power+1==m && know+1==n)
printf("Chefirnemo\n");
else
printf("Pofik\n");
}
}
return 0;
}