#include <ctype.h>
#include <string.h>
int isvalid(char c){
return c>29 ? 1 : 0 ;
}
void read_sequence( char result[] ){
char c;
int i = 0;
while(isvalid(c=getchar_unlocked())){
result[i] = c; i++;
} result[i] = '\0';
}
char* read(char str[]) {
char* ret
= (char*)malloc(size
- 3);
for (size_t i = 4; i < size; i++)
ret[i - 4] = (str[i - 1] != str[i]) ? '1' : '0';
return ret;
}
char* write(const char str[]) {
char* ret
= (char*)malloc(size
+ 5); strcpy(ret
, "DDDD"); // PoczÄ
tkowe 4 znaki 'D'
for (size_t i = 0; i < size; i++){
if (str[i] == '1')
ret[i + 4] = (ret[i + 3] == 'D') ? 'G' : 'D';
else
ret[i + 4] = (ret[i + 3] == 'D') ? 'D' : 'G';
}
return ret;
}
int main() {
char str[1004];
//scanf("%s",str);
read_sequence(str);
char* result = str[0]>64 ? read(str) : write(str) ;
return 0;
}
I2luY2x1ZGUgPGN0eXBlLmg+CiNpbmNsdWRlIDxzdHJpbmcuaD4KIAppbnQgaXN2YWxpZChjaGFyIGMpewoJcmV0dXJuIGM+MjkgPyAxIDogMCA7Cn0KIAp2b2lkIHJlYWRfc2VxdWVuY2UoIGNoYXIgcmVzdWx0W10gKXsKCWNoYXIgYzsKCWludCBpID0gIDA7Cgl3aGlsZShpc3ZhbGlkKGM9Z2V0Y2hhcl91bmxvY2tlZCgpKSl7CgkJcmVzdWx0W2ldID0gYzsgaSsrOwoJfSAgcmVzdWx0W2ldID0gJ1wwJzsKfQogCiAKY2hhciogcmVhZChjaGFyIHN0cltdKSB7CiAgICBzaXplX3Qgc2l6ZSA9IHN0cmxlbihzdHIpOwogICAgY2hhciogcmV0ID0gKGNoYXIqKW1hbGxvYyhzaXplIC0gMyk7CiAKICAgIGZvciAoc2l6ZV90IGkgPSA0OyBpIDwgc2l6ZTsgaSsrKQogICAgICAgIHJldFtpIC0gNF0gPSAoc3RyW2kgLSAxXSAhPSBzdHJbaV0pID8gJzEnIDogJzAnOwogCiAgICByZXR1cm4gcmV0Owp9CiAKY2hhciogd3JpdGUoY29uc3QgY2hhciBzdHJbXSkgewogICAgc2l6ZV90IHNpemUgPSBzdHJsZW4oc3RyKTsKICAgIGNoYXIqIHJldCA9IChjaGFyKiltYWxsb2Moc2l6ZSArIDUpOwogICAgc3RyY3B5KHJldCwgIkREREQiKTsgLy8gUG9jesOEwoV0a293ZSA0IHpuYWtpICdEJwogCiAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7IGkrKyl7CiAgICAgICAgaWYgKHN0cltpXSA9PSAnMScpCiAgICAgICAgICAgIHJldFtpICsgNF0gPSAocmV0W2kgKyAzXSA9PSAnRCcpID8gJ0cnIDogJ0QnOwogICAgICAgIGVsc2UKICAgICAgICAgICAgcmV0W2kgKyA0XSA9IChyZXRbaSArIDNdID09ICdEJykgPyAnRCcgOiAnRyc7CiAgICB9CiAgICByZXR1cm4gcmV0Owp9CiAKaW50IG1haW4oKSB7CgljaGFyIHN0clsxMDA0XTsKCS8vc2NhbmYoIiVzIixzdHIpOwoJcmVhZF9zZXF1ZW5jZShzdHIpOwoJY2hhciogcmVzdWx0ID0gc3RyWzBdPjY0ID8gcmVhZChzdHIpIDogd3JpdGUoc3RyKSA7CglwcmludGYoIiVzIixyZXN1bHQpOwoJCiAgICBmcmVlKHJlc3VsdCk7CgkKCXJldHVybiAwOwp9ICA=