fork download
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<string.h>
  4.  
  5. struct trie{
  6. char letter[310];
  7. int check;
  8. } T[500];
  9. int Tindex;
  10. int max;
  11.  
  12. void insertT(char *s){
  13. int t;
  14. if(s[0] == 'a') t=0;
  15. if(s[0] == 'c') t=1;
  16. if(s[0] == 'g') t=2;
  17. if(s[0] == 't') t=3;
  18. for(int i=0 ; i<strlen(s) ; i++){
  19. T[t].letter[i] = s[i];
  20. }
  21. Tindex++;
  22. }
  23.  
  24. void checkT(char *s){
  25. for(int i=0 ; i<Tindex ; i++){
  26. for(int j=0 ; j<strlen(s) ; j++){
  27. if(s[j] == T[i].letter[j]){
  28. if(max <= j){
  29. max = j;
  30. T[i].check = max;
  31. }
  32. }
  33. else break;
  34. }
  35. }
  36. }
  37.  
  38. int main(){
  39. char s1[310];
  40. char s2[310];
  41. char out[1000][1000];
  42.  
  43. while(scanf("%s", s1) != EOF){
  44. scanf("%s", s2);
  45.  
  46. int indexout = 0;
  47. Tindex = 0;
  48. max = -1;
  49. memset(T, 0, sizeof(T));
  50. memset(out, 0, sizeof(out));
  51.  
  52. for(int i=0 ; i<strlen(s1) ; i++){
  53. insertT(s1+i);
  54. }
  55.  
  56. for(int i=0 ; i<strlen(s2) ; i++){
  57. checkT(s2+i);
  58. }
  59.  
  60. for(int i=0 ; i<Tindex ; i++){
  61. if(T[i].check == max){
  62. for(int j=0 ; j<=max ; j++){
  63. printf("%c", T[i].letter[j]);
  64. }
  65. printf("\n");
  66. }
  67. }
  68.  
  69. if(max == -1) printf("No common sequence.\n");
  70.  
  71. printf("\n");
  72. }
  73.  
  74. return 0;
  75. }
Success #stdin #stdout 0s 16240KB
stdin
Standard input is empty
stdout
Standard output is empty