Source code for submission s859

fs.c

  1. #include <stdio.h>
  2.  
  3. char tree[33]="01ETIANMSURWDKGOHVF_L,PJBXCYZQ.?";
  4. void morseToAscii(char *morse,int *lengths){
  5. int im=0,il=0,it,i;
  6. while(morse[im]){
  7. it=1;
  8. for(i=0;i<lengths[il];i++){
  9. it*=2;
  10. if(morse[im++]=='-'){
  11. it++;
  12. }
  13. }
  14. il++;
  15. putchar(tree[it]);
  16. }
  17. putchar('\n');
  18. }
  19. int len(char *s){
  20. int i=0;
  21. while(s[i])
  22. i++;
  23. printf("%d\n",i);
  24. return i;
  25. }
  26. int main()
  27. {
  28. char pole[4004];
  29. char *kod;
  30. int cislo[1001];
  31. int i, ci, j, c;
  32. int lengths[1001];
  33. int il;
  34.  
  35. while((c = getchar()) != EOF) {
  36. ungetc(c,stdin);
  37. i = 0;
  38. ci = 0;
  39. il=0;
  40. while((c = getchar()) != '\n') {
  41. switch(c) {
  42. case 'A': kod = ".-\0"; break;
  43. case 'B': kod = "-...\0"; break;
  44. case 'C': kod = "-.-.\0"; break;
  45. case 'D': kod = "-..\0"; break;
  46. case 'E': kod = ".\0"; break;
  47. case 'F': kod = "..-.\0"; break;
  48. case 'G': kod = "--.\0"; break;
  49. case 'H': kod = "....\0"; break;
  50. case 'I': kod = "..\0"; break;
  51. case 'J': kod = ".---\0"; break;
  52. case 'K': kod = "-.-\0"; break;
  53. case 'L': kod = ".-..\0"; break;
  54. case 'M': kod = "--\0"; break;
  55. case 'N': kod = "-.\0"; break;
  56. case 'O': kod = "---\0"; break;
  57. case 'P': kod = ".--.\0"; break;
  58. case 'Q': kod = "--.-\0"; break;
  59. case 'R': kod = ".-.\0"; break;
  60. case 'S': kod = "...\0"; break;
  61. case 'T': kod = "-\0"; break;
  62. case 'U': kod = "..-\0"; break;
  63. case 'V': kod = "...-\0"; break;
  64. case 'W': kod = ".--\0"; break;
  65. case 'X': kod = "-..-\0"; break;
  66. case 'Y': kod = "-.--\0"; break;
  67. case 'Z': kod = "--..\0"; break;
  68. case '_': kod = "..--\0"; break;
  69. case '.': kod = "---.\0"; break;
  70. case ',': kod = ".-.-\0"; break;
  71. case '?': kod = "----\0"; break;
  72. default: break;
  73. }
  74. j=0;
  75. while(kod[j]){
  76. pole[i++]=kod[j++];
  77. }
  78. cislo[ci++]=j;
  79. }
  80. pole[i]='\0';
  81. while(ci--)
  82. lengths[il++]=cislo[ci];
  83. morseToAscii(pole,lengths);
  84. }
  85. return 0;
  86. }
  87.