如果你得到 LTE 的測試結果,可以從兩個方向改進:
1. 使用 scanf 代替 cin, 以及使用 printf 代替 cout,很多人都已經提到這一點。
2. 你的最上層的迴圈,要能偵測到測試資料已經結束,這樣的程式碼看起來會像是
while (scanf("%d %d %d %d", &a[0], &a[1], &a[2], &a[3]) == 4) {
.... // 讀取 n 及 n組嘗試的密碼,然後加以處理
}
特別注意上面的 == 4
也可以寫成 > 0
但是如果你寫成底下的形式,那迴圈就不會結束,一定會 LTE
while (scanf("%d %d %d %d", &a[0], &a[1], &a[2], &a[3])) {
}
這個原因是測資跑完時,scanf()會回傳 -1 (或是 EOF),這並不會讓 while 迴圈結束喔!