Re: ACM 10696 ... 迴圈只比遞迴快1秒
花了三個小時, 能用的髒方法幾乎用上了,
只剩用一個 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
推
07/07 03:58, , 1F
07/07 03:58, 1F
→
07/07 03:59, , 2F
07/07 03:59, 2F
→
07/07 04:00, , 3F
07/07 04:00, 3F
推
07/07 04:03, , 4F
07/07 04:03, 4F
推
07/07 10:34, , 5F
07/07 10:34, 5F
→
07/07 10:34, , 6F
07/07 10:34, 6F
推
07/07 11:57, , 7F
07/07 11:57, 7F
推
07/07 12:09, , 8F
07/07 12:09, 8F
推
07/07 23:57, , 9F
07/07 23:57, 9F
推
07/08 00:47, , 10F
07/08 00:47, 10F
→
07/08 00:48, , 11F
07/08 00:48, 11F
推
07/08 00:50, , 12F
07/08 00:50, 12F
→
07/08 00:51, , 13F
07/08 00:51, 13F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章