#include <stdio.h>
#define MAXLINE 300
int get_line(char s[]);
void reverse(char s[], char rs[], int len);
int main() {
int len;
char line[MAXLINE];
char reversed_line[MAXLINE];
while ((len = get_line(line)) > 0) {
reverse(line, reversed_line, len);
printf("%s\n", reversed_line
); }
return 0;
}
int get_line(char s[]) {
int c, i;
int last_letter = 0;
for (i
= 0; (c
=getchar()) != EOF
&& (i
!= (MAXLINE
- 2)); ++i
) { if (c == '\n') {
break;
}
else if (c == '\t' || c == ' ') {
s[i] = c;
}
else {
s[i] = c;
last_letter = i;
}
}
s[last_letter + 1] = '\0';
return last_letter;
}
void reverse(char line[], char reversed[], int len) {
int i = 0;
while (i <= len) {
reversed[i] = line[len - i];
i++;
}
reversed[i+1] = '\0';
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgojZGVmaW5lIE1BWExJTkUgMzAwCgppbnQgZ2V0X2xpbmUoY2hhciBzW10pOwp2b2lkIHJldmVyc2UoY2hhciBzW10sIGNoYXIgcnNbXSwgaW50IGxlbik7CgppbnQgbWFpbigpIHsKICAgIGludCBsZW47CiAgICBjaGFyIGxpbmVbTUFYTElORV07CiAgICBjaGFyIHJldmVyc2VkX2xpbmVbTUFYTElORV07CgogICAgd2hpbGUgKChsZW4gPSBnZXRfbGluZShsaW5lKSkgPiAwKSB7CiAgICAgICAgcmV2ZXJzZShsaW5lLCByZXZlcnNlZF9saW5lLCBsZW4pOwogICAgICAgIHByaW50ZigiJXNcbiIsIGxpbmUpOwogICAgICAgIHByaW50ZigiJXNcbiIsIHJldmVyc2VkX2xpbmUpOwogICAgfQoKICAgIHJldHVybiAwOwp9CgppbnQgZ2V0X2xpbmUoY2hhciBzW10pIHsKCiAgICBpbnQgYywgaTsKICAgIGludCBsYXN0X2xldHRlciA9IDA7CgogICAgZm9yIChpID0gMDsgKGM9Z2V0Y2hhcigpKSAhPSBFT0YgJiYgKGkgIT0gKE1BWExJTkUgLSAyKSk7ICsraSkgewogICAgICAgIGlmIChjID09ICdcbicpIHsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICAgIGVsc2UgaWYgKGMgPT0gJ1x0JyB8fCBjID09ICcgJykgewogICAgICAgICAgICBzW2ldID0gYzsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIHNbaV0gPSBjOwogICAgICAgICAgICBsYXN0X2xldHRlciA9IGk7CiAgICAgICAgfQogICAgfQoKICAgIHNbbGFzdF9sZXR0ZXIgKyAxXSA9ICdcMCc7CgogICAgcmV0dXJuIGxhc3RfbGV0dGVyOwp9Cgp2b2lkIHJldmVyc2UoY2hhciBsaW5lW10sIGNoYXIgcmV2ZXJzZWRbXSwgaW50IGxlbikgewogICAgaW50IGkgPSAwOwoKICAgIHdoaWxlIChpIDw9IGxlbikgewogICAgICAgIHJldmVyc2VkW2ldID0gbGluZVtsZW4gLSBpXTsKICAgICAgICBpKys7CiAgICB9CgogICAgcmV2ZXJzZWRbaSsxXSA9ICdcMCc7Cn0=