From 9e28e4c7b67c54229df11d355047ac8a88ea1817 Mon Sep 17 00:00:00 2001 From: Nguyễn Gia Phong Date: Sun, 15 Dec 2019 15:09:13 +0700 Subject: Normalize pathname --- NTU/pali2.c | 68 ------------------------------------------------------------- 1 file changed, 68 deletions(-) delete mode 100644 NTU/pali2.c (limited to 'NTU/pali2.c') diff --git a/NTU/pali2.c b/NTU/pali2.c deleted file mode 100644 index 72c9105..0000000 --- a/NTU/pali2.c +++ /dev/null @@ -1,68 +0,0 @@ -#include -#include -#include - -short MIN_K, *P; - -void putnc(char *s, short len) -{ - short i; - - for (i = 0; i < len; i++) - putchar(s[i]); - putchar(10); -} - -char palin(char *s, short len) -{ - short i; - - for (i = 0; i < (len + 1) / 2; i++) - if (s[i] != s[len - i - 1]) - return 0; - - return 1; -} - -void foo(char *s, short len, short k, short *p) -{ - short i, j; - - if (palin(s, len)) { - MIN_K = k; - memcpy(P, p, k * sizeof(short)); - return; - } - - if (k >= MIN_K) - return; - - for (i = len - 1; i; i--) - if (palin(s, i)) { - p[k] = p[k - 1] + i; - foo(s + i, len - i, k + 1, p); - } -} - -int main() -{ - short n, i, *p; - char *s; - - scanf("%hd\n", &n); - s = malloc(n + 1); - fgets(s, n + 1, stdin); - - MIN_K = n; - P = malloc(n); - p = malloc(n); - p[0] = 0; - foo(s, n, 1, p); - - printf("%hd\n", MIN_K); - for (i = 1; i < MIN_K; i++) - putnc(s + P[i - 1], P[i] - P[i - 1]); - puts(s + P[MIN_K - 1]); - - return 0; -} -- cgit 1.4.1