#include<iostream> #include<cstring> #include<cstdio> #include<cmath> #include<set> #include<map> #define db(a) \ cout << #a << " = " << a << endl #define db2(a, b) \ cout << #a << " = " << a << " " << #b << " = " << b << endl #define inf (1<<30) #define foreach(it, m) \ for (typeof(m.begin()) it = m.begin(); it != m.end(); it++) using namespace std; map<char, char> m; bool espali(string s) { int n = s.size(); for (int i = 0; i < n / 2; i++) { if (s[i] != s[n - i - 1]) return false; } return true; } bool esmirror(string s) { int n = s.size(); for (int i = 0; i <= n / 2; i++) if (s[i] != m[s[n - i - 1]]) return false; return true; } int main() { #ifdef dennisbot freopen("in.in", "r", stdin); freopen("ou.out", "w", stdout); #endif char s[30]; m['A'] = 'A'; m['M'] = 'M'; m['Y'] = 'Y'; m['B'] = '-'; m['N'] = '-'; m['Z'] = '5'; m['C'] = '-'; m['O'] = 'O'; m['1'] = '1'; m['D'] = '-'; m['P'] = '-'; m['2'] = 'S'; m['E'] = '3'; m['Q'] = '-'; m['3'] = 'E'; m['F'] = '-'; m['R'] = '-'; m['4'] = '-'; m['G'] = '-'; m['S'] = '2'; m['5'] = 'Z'; m['H'] = 'H'; m['T'] = 'T'; m['6'] = '-'; m['I'] = 'I'; m['U'] = 'U'; m['7'] = '-'; m['J'] = 'L'; m['V'] = 'V'; m['8'] = '8'; m['K'] = '-'; m['W'] = 'W'; m['9'] = '-'; m['L'] = 'J'; m['X'] = 'X'; bool pali, mirror; while(gets(s) != NULL) { pali = espali(s); mirror = esmirror(s); if (pali && mirror) printf("%s -- is a mirrored palindrome.\n", s); else if (pali) printf("%s -- is a regular palindrome.\n", s); else if (mirror) printf("%s -- is a mirrored string.\n", s); else printf("%s -- is not a palindrome.\n", s); puts(""); } return 0; }here is the statement
viernes, 13 de julio de 2012
401 - Palindromes, uva
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario