fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. int die (char * a) { printf(a); exit(1); }
  5. char saturate (char a) { return a * !((a - 1) & ~7); }
  6. char hi_nibble(char a) { return a >> 4; }
  7. char lo_nibble(char a) { return a & 15; }
  8. char valid (char a) { return hi_nibble(a) && lo_nibble(a); }
  9. int perevod (char * a) { return saturate(a[0] - 'A' + 1) << 4 | saturate(a[1] - '1' + 1); }
  10. #define BUFLEN 255
  11. int main()
  12. {
  13. char s[BUFLEN];
  14. fgets(s, BUFLEN, stdin);
  15. int z1, z2;
  16. z1=perevod(s);
  17. z2=perevod(s + 3);
  18. (strlen(s) != 6 || !valid(z1) || !valid(z2) || s[2] != '-') && die("ERROR");
  19. abs(hi_nibble(z1) - hi_nibble(z2)) + abs(lo_nibble(z1) - lo_nibble(z2)) == 3 ? printf("YES") : printf("NO");
  20. return 0;
  21. }
Runtime error #stdin #stdout 0s 4272KB
stdin
A1-B3
stdout
ERROR