【发布时间】:2018-09-08 15:15:27
【问题描述】:
我正在解决一个问题。但我错过了一些东西。有一些测试用例我的解决方案是错误的。我需要找到那个测试用例。 对于另一个子任务,它说执行时间太长了。
如果厨师的知识和权力分别完全等于 N 和 M,他就可以访问 Discourse。最初,他有权力 1和知识1。
厨师可以执行以下类型的操作来提高他的技能:
- 解决一个问题 - 增加他的知识 X
- 做一个俯卧撑 - 将他的力量增加 Y
- 安装 ShareChat 以与朋友保持联系 - 知识和力量都增加 1 倍
Chef 最多只能安装一次 ShareChat。剩余的动作可以执行任意次数,并且这些动作可以是 以任意顺序执行。
帮助 Chef 了解是否可以从 Discuss 转到 Discourse。
输入
输入的第一行包含一个整数 T,表示测试用例的数量。 T测试用例的描述如下。
每个测试用例的第一行也是唯一一行包含四个以空格分隔的整数 N、M、X 和 Y。
输出
对于每个测试用例,如果可以达到所需的知识,则打印包含字符串“Chefirnemo”的单行,并且 权力或“Pofik”(如果不可能)
您也可以访问此链接阅读问题 问题链接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;
}
【问题讨论】:
-
请在问题中提供所需帮助的完整信息,而不是共享链接。它会帮助人们帮助你。
-
超过时间限制
-
了解模运算 (
%) 它应该有助于解决 TLE 问题 -
你标记了这个
C++,但对我来说它看起来像C。我没有看到任何 C++ 用法。 -
想知道活动中的问题是否在这里跑题了?!