這題請嘗試用一個printf 解決
速度是10倍
這題請嘗試用一個printf 解決
速度是10倍
所謂的一個 printf 就是指把結果存成一個長長的字串最後一次輸出
ps. putchar 又比 printf 更快 !!
這題請嘗試用一個printf 解決
速度是10倍
所謂的一個 printf 就是指把結果存成一個長長的字串最後一次輸出
ps. putchar 又比 printf 更快 !!
不知道我是不是誤會你的意思了,我照你的意思做結果TLE...
//=======================
#include <stdio.h>
#include <string.h>
char buf[1000], str[1000000];
int main () {
int n, i, l, r, num[1000];
while (scanf("%d", &n) != EOF) {
for (i = 0; i < n; i++) {
scanf("%d", &num[i]);
}
l = 0;
r = n-1;
while (l != r) {
for (i = l; i <= r; i++) {
// printf("%d ", num[i]);
sprintf(buf, "%d ", num[i]);
strcat(str, buf);
}
// puts("");
sprintf(buf, "\n");
strcat(str, buf);
l++;
if (l == r) {
break;
}
for (i = r; i >= l; i--) {
// printf("%d ", num[i]);
sprintf(buf, "%d ", num[i]);
strcat(str, buf);
}
// puts("");
sprintf(buf, "\n");
strcat(str, buf);
r--;
}
// printf("%d\n", num[l]);
sprintf(buf, "%d\n", num[l]);
strcat(str, buf);
printf("%s", str);
}
return 0;
}
//=================================
其他地方都沒有動
用sprintf把結果存到buffer裡,然後用strcat串接起來,最後再輸出
可是我得到TLE耶...囧TZ
//後面是很黑心的掉出了測資
/*
81
54 98 68 63 83 94 55 35 12 63 30 17 97 62 96 26 63 76 91 19 52 42 55 95 8 97 6 18 96 3 46 21 55 88 14 27 65 8 94 93 52 39 40 52 12 94 89 39 38 6 24 92 88 40 89 12 40 8 86 41 66 15 61 91 11 32 33 59 77 24 46 51 97 17 6 58 16 40 84 28 51
2
97 99
91
54 98 68 63 83 94 55 35 12 63 30 17 97 62 96 26 63 76 91 19 52 42 55 95 8 97 6 18 96 3 46 21 55 88 14 27 65 8 94 93 52 39 40 52 12 94 89 39 38 6 24 92 88 40 89 12 40 8 86 41 66 15 61 91 11 32 33 59 77 24 46 51 97 17 6 58 16 40 84 28 51 28 56 46 60 17 51 72 74 16 67
*/