fork download
  1. #include <cstdio>
  2. #include <cstdlib>
  3. #include <ctype.h>
  4. #include <cstring>
  5. #include <unistd.h>
  6. #include <iostream>
  7. using namespace std;
  8.  
  9. char* read(char str[]) {
  10. size_t size = strlen(str);
  11. char* ret = (char*)malloc(size - 3);
  12.  
  13. for (size_t i = 4; i < size; i++)
  14. ret[i - 4] = (str[i - 1] != str[i]) ? '1' : '0';
  15.  
  16. return ret;
  17. }
  18.  
  19. char* write(const char str[]) {
  20. size_t size = strlen(str);
  21. char* ret = (char*)malloc(size + 5);
  22. strcpy(ret, "DDDD"); // PoczÄ…tkowe 4 znaki 'D'
  23.  
  24. for (size_t i = 0; i < size; i++){
  25. if (str[i] == '1')
  26. ret[i + 4] = (ret[i + 3] == 'D') ? 'G' : 'D';
  27. else
  28. ret[i + 4] = (ret[i + 3] == 'D') ? 'D' : 'G';
  29. }
  30. return ret;
  31. }
  32.  
  33. int main() {
  34.  
  35. char str[1005];
  36. int n = read(STDIN_FILENO, str, 1005); str[n] = '\0';
  37. char* result = str[0]>64 ? read(str) : write(str) ;
  38. printf("%s",result);
  39.  
  40. free(result);
  41.  
  42. return 0;
  43. }
Success #stdin #stdout 0s 5304KB
stdin
DDDDD
stdout
Standard output is empty