精華區beta C_and_CPP 關於我們 聯絡資訊
花了三個小時, 能用的髒方法幾乎用上了, 只剩用一個 buffer 一次輸出和 asm 沒用上而已, 時間是 0.131, 目前是第 8 名, 有 Link 有真相, http://acm.uva.es/p/problemstat.php?p=:10696 下面是我的 Code: #include <stdio.h> #include <string.h> #define MAX 500100 char buf[MAX]; int main() { char msg[30]="f91(", s[10], *c=buf, *t1, *t2; fread(buf, 1, MAX, stdin); while (1) { while (*c<48) c++; if (*c==48) break; for (t1=msg+4, t2=s; *c>=48; *t2++=*t1++=*c++); *t2=0; if (t2-s>2&&strcmp(s,"100")) { // strcpy(t1, ") = "); *(t1)=')'; *(t1+1)=' '; *(t1+2)='='; *(t1+3)=' '; for(t2-=2; --(*t2)<48; (*t2--)+=10); // strcpy(t1+4, (*s==48) ? s+1 : s); for(t2= (*s==48) ? s+1 : s, t1+=4; *t2; *t1++=*t2++); *t1=0; } else { // strcpy(t1, ") = 91"); *(t1)=')'; *(t1+1)=' '; *(t1+2)='='; *(t1+3)=' '; *(t1+4)='9'; *(t1+5)='1'; *(t1+6)=0; } puts(msg); } return 0; } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.67.201.44
jeunder:害我掉一名的兇手原來是你... \./m 07/07 03:58
ssagit:承讓了.... 07/07 03:59
jeunder:寫得比我漂亮多了. 另外, 我點了一下你, 戰績輝煌啊, 佩服 07/07 04:00
ssagit:其實我解出來的題目還算少的, 有不少人都已經破百了.... 07/07 04:03
cplusplus:要破百其實很簡單 不要去鑽這種時間 然後就一直寫就好了 07/07 10:34
cplusplus:其實acm裡面簡單的題目很多~~ 07/07 10:34
windows2k:樓上就是一個破百的例子 07/07 11:57
hellgod:樓上是一個破千的例子 07/07 12:09
SHBK:樓樓上是破千的強者 07/07 23:57
ssagit:樓樓樓上剛好在第10名, 看了一下, 前25名有3個是台灣人... 07/08 00:48
ssagit:重新看了一下這一題的排名, 板上另一位強者只花0.057秒, 07/08 00:50
ssagit:不知道他願不願意分享是用什麼方法寫出來的.... 07/08 00:51