#39130: 求助,本地答案是對的,但系統都是錯的


10435002 (鮪魚三明治)

學校 : 臺北市立大同高級中學
編號 : 52383
來源 : [223.137.162.230]
最後登入時間 :
2024-01-27 16:15:30
e447. queue 練習 | From: [119.14.29.56] | 發表日期 : 2024-01-19 19:12

我真的不知道為什麼我在本地可以執行,但上系統就死掉了QQ
本地:TDM-GCC 9.2.0 64-bit Release (Dev C++) 

詳細+高亮:

https://hackmd.io/@-DvamJjeQ5i7yJf-TbHD3A/HkrmL0DYp

 

 

# include<stdio.h>
#define MAX 1000001
 
 
long int q[MAX]={0};
long int fp=0;
long int bp=0;
 
int inq(long int* q, long int ele){
 
bp=(bp+1)%MAX;
q[bp]=ele;
return 0;
}
int deq(long int* q){
if(fp>=bp)
return -1;
 
fp=(fp+1)%MAX;
int temp=q[fp];
q[fp]=0;
 
return temp;
 
}
 
int front(long int* q){
if(fp==bp)
return -1;
 
int ind=(fp+1)%MAX;
return q[ind];
}
 
 
 
void job(){
long int k;
long int ele;
scanf("%ld",&k);
switch (k){
case 1:
 
scanf("%ld",&ele);
//printf("print: %d, %d\n",k,ele);
inq(q,ele);
break;
case 2:
//printf("out: %d\n",front(q));
printf("%ld\n",front(q));
break;
case 3:
deq(q);
break;
}
}
 
int main(){
long int num;
while (scanf("%ld\n",&num)!=EOF){
 
for (long int i=0;i<num;i++){
job();
}
 
}
return 0;
}
 
 
 
 
 
#39131: Re: 求助,本地答案是對的,但系統都是錯的


liaoweichen1024@gmail.com (M_SQRT)

學校 : 新北市立新莊高級中學
編號 : 195452
來源 : [210.71.71.103]
最後登入時間 :
2024-05-06 12:16:25
e447. queue 練習 | From: [118.166.154.136] | 發表日期 : 2024-01-19 20:37

這題用 int 就可以了

如果要用 long int 的話,第27行 front() 的回傳值型別也要改成 long int
在32位元下 $4294967295$ 和 $-1$ 是一樣的東西。

「送出解答」前可以先「測試執行」(第二顆綠色按鈕),這支程式測試就能發現有錯誤了

 
#39137: Re: 求助,本地答案是對的,但系統都是錯的


10435002 (鮪魚三明治)

學校 : 臺北市立大同高級中學
編號 : 52383
來源 : [223.137.162.230]
最後登入時間 :
2024-01-27 16:15:30
e447. queue 練習 | From: [119.14.29.56] | 發表日期 : 2024-01-20 15:52

這題用 int 就可以了

如果要用 long int 的話,第27行 front() 的回傳值型別也要改成 long int
在32位元下 $4294967295$ 和 $-1$ 是一樣的東西。

「送出解答」前可以先「測試執行」(第二顆綠色按鈕),這支程式測試就能發現有錯誤了


感謝大大,終於AC了。看起來是本地新版的編譯器聰明的化解了這個問題,才導致本地編譯都沒問題。><

 
ZeroJudge Forum