Advertisement
sm2345

WORDLIST

Dec 30th, 2012
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.34 KB | None | 0 0
  1. #include<iostream>
  2. #include<stdio.h>
  3. #include<string.h>
  4. #include<ctype.h>
  5.  
  6. using namespace std;
  7.  
  8. int wordcompare(char*a, char*b)
  9. {
  10.     int i,j;
  11.     for(i=0; a[i]!='\0';i++)
  12.             if(isupper(a[0]))     a[0]=tolower(a[0]);
  13.             if(!isalpha(a[i-1]))  {a[i-1]='\0'; i--;}
  14.     for(j=0; b[j]!='\0';j++)
  15.             if(isupper(b[0]))     b[0]=tolower(b[0]);
  16.             if(!isalpha(b[j-1]))  {b[j-1]='\0'; j--;}
  17.     int k=0;
  18.     while(a[k]==b[k]&&a[k]!='\0'&&b[k]!='\0')
  19.     {    k++;
  20.          //printf("%c  %c\n", a[k], b[k]);
  21.      }
  22.     if(a[k]>b[k]) return -1;
  23.     else if(a[k]<b[k]) return 1;
  24.     else if(a[k]==b[k]) return 0;
  25.     else return 0;
  26. }
  27.  
  28. void swap(char*a, char*b)
  29. {
  30.     char p[80];
  31. /*    int i;
  32.     for(i=0; *(a+i-1)!='\0'; i++)
  33.             {p[i]=*(a+i); printf("%c %c %d\n", a[i], p[i], i);}
  34.    
  35.     for(i=0; *(b+i-1)!='\0';i++)
  36.             {*(a+i)=*(b+i); printf("%c %c %d\n", b[i], a[i], i);}
  37.    
  38.     for(i=0; p[i-1]!='\0';i++)
  39.             {*(b+i)=p[i]; printf("%c %c %d\n", p[i], b[i], i);}
  40. */
  41.      
  42.      strcpy(p,a);
  43.      strcpy(a,b);
  44.      strcpy(b,p);
  45.  }
  46. int N;
  47.  
  48. char words[800000][80];
  49.  
  50. int main()
  51. {
  52.      scanf("%ld",&N);
  53.      char p[10000][80];
  54.      for(int i=0;i<N;i++)
  55.      { //printf("%d", i);    
  56.         gets(p[i]);
  57.        //puts(p[i]);
  58.       }
  59.      int k=0, l=0;
  60.      for(int i=0;i<N;i++)
  61.      {
  62.        for(int j=0;p[i][j]!='\0';j++)
  63.           {
  64.                words[k][l]=p[i][j];
  65.                l++;
  66.                if(p[i][j]==' '||p[i][j]=='\0')
  67.                {words[k][l]='\0';l=0;k++;}
  68.            }
  69.        words[k][l]='\0';l=0;k++;
  70.       }
  71.      
  72.      for(int i=0;i<k;i++)
  73.      puts(words[i]);
  74.    
  75.      for(int i=0;i<k;i++)
  76.      {
  77.              for(int j=i+1;j<k;j++)
  78.              {
  79.                     if(wordcompare(words[i],words[j])==-1)
  80.                     swap(words[i], words[j]);
  81.               }
  82.       }
  83.      int c=k;
  84.      for(int i=0;i<k-1;i++)
  85.      if(!strcmp(words[i],words[i+1]))
  86.      {strcpy(words[i],"0"); c--;}
  87.      
  88.      printf("%d\n", c);
  89.      for(int i=0;i<k;i++)
  90.      { if(strcmp(words[i],"0")) puts(words[i]); }
  91.      
  92. /*    
  93.      char a[10],b[10];
  94.      gets(a); gets(b);
  95.      puts(a); puts(b);
  96.      printf("%d", wordcompare(a,b));
  97.  
  98.      swap(a,b);
  99.      puts(a); puts(b);
  100.      printf("\nKukuku!");
  101. */      
  102.  
  103.      return 0;
  104. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement