- //(c)Terminator 
- #include <stdio.h> 
- #include <ctype.h> 
-   
-   
-   
- const char* fpolyw(const char* s, const char** f, const char** l){ 
- 	const char* p, *t; 
-   
- 	while(*s) { 
- 			++s; 
-   
-   
- 		t = p; 
- 		if((p - s) > 2){ 
- 			*f = s; 
- 			*l = p; 
- 			for(--p; p > s; ++s, --p){ 
- 				if(*p != *s) 
- 					break; 
- 			} 
- 			if(*p == *s) 
- 				return t; 
- 		} 
- 		s = t; 
- 	}  
- 	return NULL; 
- } 
-   
-   
-   
- int main(void){ 
- 	const char* p, *f, *l; 
-   
- 	char s[] = "ABCEEExEEECBA???the, bla ADA, WOW, adida, spam,kook"; 
-   
- 	p = &s[0]; 
- 	while((p = fpolyw(p, &f, &l)) != NULL){ 
- //		fwrite(f, sizeof(char), (size_t)(l - f), stdout); 
- 		while(f != l) 
- 	} 
- 	return 0; 
- } 
				Ly8oYylUZXJtaW5hdG9yCiNpbmNsdWRlIDxzdGRpby5oPgojaW5jbHVkZSA8Y3R5cGUuaD4KCgoKY29uc3QgY2hhciogZnBvbHl3KGNvbnN0IGNoYXIqIHMsIGNvbnN0IGNoYXIqKiBmLCBjb25zdCBjaGFyKiogbCl7Cgljb25zdCBjaGFyKiBwLCAqdDsKCgl3aGlsZSgqcykgewoJCXdoaWxlKCpzICYmICEgaXNhbHBoYSgqcykpCgkJCSsrczsKCgkJZm9yKHAgPSBzOyBpc2FscGhhKCpwKTsgKytwKTsKCgkJdCA9IHA7CgkJaWYoKHAgLSBzKSA+IDIpewoJCQkqZiA9IHM7CgkJCSpsID0gcDsKCQkJZm9yKC0tcDsgcCA+IHM7ICsrcywgLS1wKXsKCQkJCWlmKCpwICE9ICpzKQoJCQkJCWJyZWFrOwoJCQl9CgkJCWlmKCpwID09ICpzKQoJCQkJcmV0dXJuIHQ7CgkJfQoJCXMgPSB0OwoJfSAKCXJldHVybiBOVUxMOwp9CgoKCmludCBtYWluKHZvaWQpewoJY29uc3QgY2hhciogcCwgKmYsICpsOwoKCWNoYXIgc1tdID0gIkFCQ0VFRXhFRUVDQkE/Pz90aGUsIGJsYSBBREEsIFdPVywgYWRpZGEsIHNwYW0sa29vayI7CgoJcCA9ICZzWzBdOwoJd2hpbGUoKHAgPSBmcG9seXcocCwgJmYsICZsKSkgIT0gTlVMTCl7Ci8vCQlmd3JpdGUoZiwgc2l6ZW9mKGNoYXIpLCAoc2l6ZV90KShsIC0gZiksIHN0ZG91dCk7CgkJd2hpbGUoZiAhPSBsKQoJCQlwdXRjaGFyKCpmKyspOwoJCXB1dGNoYXIoJ1xuJyk7Cgl9CglyZXR1cm4gMDsKfQ==