[請益] 一個簡單題卻...

看板Programming作者 (哥)時間14年前 (2011/10/14 13:47), 編輯推噓6(6010)
留言16則, 6人參與, 最新討論串1/1
codeforce的 71A http://codeforces.com/problemset/problem/71/A 我的程式短所以直接貼了 #include <stdlib.h> #include <stdio.h> int main(){ int num; scanf("%d",&num);fflush(stdin); char table[num][1000]; int i,j = 0; for(i=0;i<num;i++){ while((table[i][j++] = getchar()) != '\n'); table[i][j-1] = '\0'; if((j-1)>10){ printf("%c%d%c\n",table[i][0],j-3,table[i][j-2]); } else{ printf("%s\n",&table[i][0]); }j = 0; } return 0; } 第一個測資就time limit exceed 實在是...... 所以應該可以再優化 但我實在想不出來 所以上來請教各位了 -- ※ 發信站 :批踢踢實業坊(ptt.cc) ◆ From: 140.112.243.180

10/14 15:46, , 1F
為了玩這個第一次用codeforce
10/14 15:46, 1F

10/14 15:46, , 2F
我發現他stdin和我想得不一樣
10/14 15:46, 2F

10/14 15:46, , 3F
要用unix的\n寫成text file然後用<餵
10/14 15:46, 3F

10/14 15:47, , 4F
一開始一直寫成cr/lf compatible一直印亂碼XD
10/14 15:47, 4F

10/14 15:47, , 5F
你的作法flush完所有的輸入都會被flush掉
10/14 15:47, 5F

10/14 15:48, , 6F
所以不是optimize的問題,再改一下吧
10/14 15:48, 6F

10/14 19:27, , 7F
我試試看^^
10/14 19:27, 7F

10/14 19:34, , 8F
成功了!!設一個char c吃收num時鍵入的\n!
10/14 19:34, 8F

10/15 15:52, , 9F
fflush(stdin);只能用在 DOS/Windows
10/15 15:52, 9F

10/15 19:46, , 10F
他有vc++可以選,主要還是輸入方式的差別
10/15 19:46, 10F

10/16 19:41, , 11F
while那邊 直接用scanf
10/16 19:41, 11F

10/16 20:04, , 12F
lan的觀念不對啊,跟OS無關,fflush是
10/16 20:04, 12F

10/16 20:05, , 13F
把buffer裡面的東西強迫flush掉。
10/16 20:05, 13F

10/17 03:35, , 14F
有學到東西!!
10/17 03:35, 14F

10/17 04:00, , 15F
... fflush 不能用在 stdin
10/17 04:00, 15F

10/17 04:01, , 16F
那是 VC 的 extension
10/17 04:01, 16F
文章代碼(AID): #1Ebyq0O_ (Programming)
文章代碼(AID): #1Ebyq0O_ (Programming)