ジョリージャンプ問題(ACM 10038 uva)のソリューションコードを書きました。私のコードは次のとおりです。
#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;
}
しかし、結果として制限時間を超えました。なんで?実行時間を短縮するためにコードを修正するにはどうすればよいですか?