#include <cstdio> #include <cstdint> using namespace std; const char tak[] = "TAK"; const char nie[] = "NIE"; const uint64_t p = 6947; const uint64_t q = 7817; int main() { char c; uint64_t i, n, h, hr, pi; scanf("%lld\n", &n); i = h = hr = 0; pi = 1; while (scanf("%c", &c) == 1) { if (c == 10) break; h = (h + (pi * c) % q) % q; hr = (((hr * p) % q) + c) % q; ++i; pi = (pi * p) % q; } printf("%s", h == hr ? tak : nie); return 0; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | #include <cstdio> #include <cstdint> using namespace std; const char tak[] = "TAK"; const char nie[] = "NIE"; const uint64_t p = 6947; const uint64_t q = 7817; int main() { char c; uint64_t i, n, h, hr, pi; scanf("%lld\n", &n); i = h = hr = 0; pi = 1; while (scanf("%c", &c) == 1) { if (c == 10) break; h = (h + (pi * c) % q) % q; hr = (((hr * p) % q) + c) % q; ++i; pi = (pi * p) % q; } printf("%s", h == hr ? tak : nie); return 0; } |