看板 C_and_CPP 關於我們 聯絡資訊
( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 ) ( 未必需要依照此格式,文章條理清楚即可 ) 題號: http://zerojudge.tw/ShowProblem?problemid=d362 遇到的問題: 在dev c++上可以跑 但是上傳之後Compilation Error 編譯錯誤, 請檢查語法是否符合系統所支援的編譯器的要求。 錯誤訊息: /usr/bin/ld: final link failed: Memory exhausted collect2: ld returned 1 exit status 有問題的code: (請善用置底文的標色功能) #include<iostream> using namespace std; #define max 20000001 #define up 2000001 int prime[max]={2,2,1,1,0}; int store[up+1]={0,2,3}; int ans[100001]={0}; int main() { int c=3; for(int x=4;x<max;x+=2) prime[x]=2; for(int x=9;x<max;x+=3) prime[x]=2; for(int x=5,d=0;x<max;x+=( ((d&1)<<1)+2),d++) { if(!(prime[x])) { prime[x]=1; store[c]=x; c++; if(c==up) break; for(int y=5*x;y<max;y+=x) prime[y]=2; } } int f=1; for(int z=1;z<(up-1);z++) { if((store[z+1]-store[z])==2) { ans[f]=store[z]; f++; if(f==100001) break; } } int n; while(cin>>n) cout<<"("<<ans[n]<<", "<<ans[n]+2<<")"<<endl; } 補充說明: -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.228.101.7
VictorTom:錯誤訊息不是告訴你記憶體用超過了嗎?? 看起來就是靜態 11/19 18:33
VictorTom:陣列開太大了?_? 11/19 18:33
tw00088437:可是題目要求不是得開到那麼大嗎@"@.. 11/19 18:34
Fenikso:我傳了沒問題啊 11/19 18:36
MOONRAKER:題目又沒有叫你用什麼資料形態開那麼大 XD 11/19 18:36
Fenikso:uva judge, AC 2.376sec 11/19 18:36
MOONRAKER:本人也寫過這題,可以給你一個關鍵字:bitset 11/19 18:37
tw00088437:奇怪 我傳UVA也過了 這是怎麼回事= = 11/19 18:46
VictorTom:話說, 這個感覺不需要開int這麼大array啊XD 11/19 18:48
Fenikso:但是問題又不在演算法XD 11/19 18:50
VictorTom:算了, 從沒寫過ACM題目, 還是不要亂猜....Orz 11/19 18:50
chchwy:用bool用量就剩1/4 用bitset就剩1/32 別老是int 11/20 00:24