gpt4 book ai didi

c - ACM 10038 Jolly 套头衫

转载 作者:太空宇宙 更新时间:2023-11-04 07:31:50 25 4
gpt4 key购买 nike

我写了Jolly Jump problem的解决代码(ACM 10038 紫外线)。我的代码如下:

#include<stdio.h>
#include<stdlib.h>

int main(){
int count=0;
int Number[3000]={0};
int Absolute[3000]={0};
bool flag=true;
while(scanf("%d",&count)){
for(int i=0;i<count;++i){
scanf("%d",&Number[i]);
Absolute[i]=0;
}
for(int j=0;j<count-1;++j){
int diff=Number[j]-Number[j+1];
if(diff<0)diff*=-1;
Absolute[diff]=1;
}
flag=true;
for(int x=1;x<count;++x){
if(Absolute[x]!=1){
flag=false;
break;
}
}
if(flag)printf("Jolly\n");
else printf("Not Jolly\n");
}
return 0;
}

但是提交的结果是Time limit exceeded。为什么?如何修改我的代码以缩短运行时间?

最佳答案

您的程序可能超出了时间限制,因为它永远不会完成。如果/当 scanf() 返回 EOF 时,以下将永远不会停止循环:

while(scanf("%d",&count)){
// whatever...
}

在这些在线编程问题中,通常最好至少针对他们在问题中提供的示例数据运行您提出的解决方案,看看您是否获得预期的输出。如果你的程序没有产生预期的输出,那么你就知道你有问题需要解决(并且你有一些具体的东西需要调试)。

关于c - ACM 10038 Jolly 套头衫,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13045246/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com