ACM 10038

#include <stdio.h>

#include <stdlib.h>

int main(){

int n, i, j, num[100]={0}, x[100]={0}, flag=0;

while( scanf("%d", &n) == 1 ){

for( i=0; i<n; i++ ){

scanf("%d", &num[i]);

}

for( i=n-2; i>=0; i-- ){

for( j=0; j<n-1; j++ ){

x[j] = num[i+1] - num[i];

if( x[j] < 0 ){

x[j] = -x[j];

}

}

}

for( j=0; j<n-1; j++ ){

if( x[j] != j+1 ){

flag = 1;

}

else{

flag = 0;

}

}

if( flag == 1 ){

printf("Not jolly\n");

}

else{

printf("Jolly\n");

}

}

return 0;

}

自己跑答案對,也沒有bug,但他一直說我Runtime error

已更新項目:

謝謝Bor!!雖然Runtime error解決了,但是出現Wrong answerQQ

2 個解答

評分
  • Bor
    Lv 5
    9 年前
    最佳解答

    它題目和你說最多會有3000個數字輸入,

    你陣列只開100,

    存的空間不夠,

    那麼它當然要跟你說RE了.

    註1:這裡的RE是Segmentation fault,另有其它種不同的RE.

    註2:你測試沒有出錯是因為你的測資數字少於100個.

  • re
    Lv 4
    9 年前

    這邊有翻譯過的題目

    http://zerojudge.tw/ShowProblem?problemid=d097

    依據題目意思

    差值順序是允許調換的

    例如n=4

    序列: 1 4 5 3

    差值: 3 1 2

    這樣也是Jolly

還有問題?馬上發問,尋求解答。