[問題] zj e295. IO 優化

看板C_and_CPP (C/C++)作者 (☆牜攵☆犬羊)時間6年前 (2019/07/10 12:47), 6年前編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/3 (看更多)
大家好, 暑假廢惹那麼多天,今天總算來做點有意義的事喇 題目網址:https://zerojudge.tw/ShowProblem?problemid=e295 我現在的問題是,寫了個自訂的讀整數函式,卻沒有辦法準確知道何時 EOF。 在我的 Windows 10 (gcc 6.3), WSL Ubuntu (gcc 7.3) 上遇到 Crtl + Z 或 Crtl + D 都 可以正常離開,但在 ZeroJudge 連範例測資測試執行都會 TLE 被 killed。 程式碼:https://pastebin.com/YzWYFedy 請各位大大不吝給予意見指教,謝謝 順便問一下,同樣是函式模板,為什麼 out 就會自動推導型別,in 卻得自己指定呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 106.107.240.213 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1562734074.A.FD1.html loveme00835: 你用 I/O redirection 試試看行為是怎麼樣 07/10 12:55 https://i.imgur.com/ykW1Fbk.png
這樣算是正常吧 ※ 編輯: nevikw39 (106.107.240.213 臺灣), 07/10/2019 14:19:38 sarafciel: 你要用某個函式,參數一定會填,但回傳值不一定會接呀 07/10 14:58 請問 s 大是什麼意思? 我現在的 in 遇到 eof 應該是回傳 0 ※ 編輯: nevikw39 (101.137.5.0 臺灣), 07/10/2019 15:18:52 sarafciel: well,我是在回答你型別推導部份的問題 07/10 15:24 喔喔 所以原來模板只會推導參數的部分啊 longlongint: 你一次讀一個字元? 07/10 21:33 longlongint: 我推測你這樣寫比scanf慢哦 07/10 21:35 我還沒有實測喇 請教還有什麼更快的方法? fread 讀一整行再來拆囉 ※ 編輯: nevikw39 (106.107.176.158 臺灣), 07/10/2019 22:21:42 longlongint: 一次讀一千個字進來呀 07/10 22:48 sarafciel: 對 或者這樣講 今天我假設C++讓你可以用回傳值型推好了 07/11 09:19 sarafciel: 然後我用你的程式補一行out(in()); 請問這一行的out跟 07/11 09:21 sarafciel: in編譯器該把T代什麼型態給你?XD 07/11 09:22 suhorng: 你要判斷 fread 讀了 0 還是 1 07/11 13:17 suhorng: 不然有可能未定義然後卡在 in 的 do-while 裡 07/11 13:18 firejox: 我猜最後一行沒換行 07/11 14:10 firejox: 然後又重複利用相同的空間導致跳不出 do-while 07/11 14:11 firejox: 基本上整個是未定義行為 07/11 14:21 firejox: 在讀到檔尾時,get的回傳是未初始化變數 07/11 14:26 我在 in 加了: if(feof(stdin)) exit(0); 測試執行還是過不了欸 ※ 編輯: nevikw39 (101.137.142.248 臺灣), 07/11/2019 22:10:21 firejox: 你那段加在哪阿,重點是要跳出迴圈 07/11 22:42 原本是在 return n; 前,現在把他放進 do-while 內結果變成少一行。感覺快突破惹 ※ 編輯: nevikw39 (106.107.176.158 臺灣), 07/11/2019 23:07:55 會少一行應該就是最後一筆直接 exit,所以我想說加入判斷 n 值。但如果用 feof(stdin) && !n 會 TLE, && n != 0 卻還是少一行欸 ※ 編輯: nevikw39 (106.107.176.158 臺灣), 07/11/2019 23:30:11 終於先過測試執行惹,謝謝大家 https://pastebin.com/uNbeMcp0 ※ 編輯: nevikw39 (106.107.240.213 臺灣), 07/12/2019 21:46:37
文章代碼(AID): #1T9Mtw_H (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1T9Mtw_H (C_and_CPP)