Paste Search Dynamic
SO ds
  1. #include<stdio.h>
  2. #include<string.h>
  3. #include<math.h>
  4. struct SO{
  5.         char nd[50] ;
  6.         int solan ;    
  7. };
  8. struct SO ds[1000] ;
  9. int n = 0 ;
  10. int tn(char s[]){
  11.         int c = strlen(s)-1;
  12.         int d = 0 ;
  13.         if(c==0){
  14.                 return 0 ;
  15.         }
  16.         else {
  17.                 while(d<c){
  18.                         if(s[c]!=s[d]) return 0;
  19.                         d++ ; c-- ;
  20.                 }
  21.         return 1 ;     
  22.         }
  23. }
  24. int tim(char s[]){
  25.         for(int i = 0 ; i < n ; i++)
  26.                 if(strcmp(ds[i].nd,s)==0){
  27.                         return i ;
  28.                 }
  29.         return -1 ;
  30. }
  31. int main(){
  32.         char s[50] ; int i ;  
  33.         while(scanf("%s",&s)!=-1){
  34.                 if(tn(s)==1){
  35.                         i = tim(s);
  36.                         if(i==-1){
  37.                                 strcpy(ds[n].nd,s) ;
  38.                                 ds[n].solan=1;
  39.                                 n++;
  40.                         }
  41.                         else {
  42.                                 ds[i].solan++;
  43.                         }
  44.                 }
  45.         }
  46.         for(int i = 0 ; i < n -1 ; i++){
  47.                 for(int j = i+1 ; j < n ; j++){
  48.                         if(strlen(ds[i].nd) < strlen(ds[j].nd)){
  49.                                 struct SO tmp = ds[i] ;
  50.                                 ds[i] = ds[j] ;
  51.                                 ds[j] = tmp ;
  52.                         }
  53.                         else if(strlen(ds[i].nd) == strlen(ds[j].nd)){
  54.                                 int h = 0 ;
  55.                                 if((ds[i].nd)[h]-48 < (ds[i].nd)[h]-48){
  56.                                         struct SO cmp = ds[i] ;
  57.                                         ds[i] = ds[j] ;
  58.                                         ds[j] = cmp ;
  59.                                 }
  60.                                 else if((ds[i].nd)[h]-48 == (ds[i].nd)[h]-48){
  61.                                         h++;
  62.                                 }       
  63.                         }
  64.                 }
  65.         }
  66.         for(int i = 0 ; i < n ; i++){
  67.                 printf("%s %dn",ds[i].nd , ds[i].solan) ;
  68.         }
  69. }
Parsed in 0.013 seconds