這題請嘗試用一個printf 解決
速度是10倍
這題請嘗試用一個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
*/