Paste Search Dynamic
SoHang
  1. #include<stdio.h>
  2. #include<string.h>
  3. #include<stdlib.h>
  4. struct SoHang{
  5.         char so[20];
  6.         int xh;
  7. };
  8. int tim(struct SoHang stt[],char s[] ,int k){
  9.         for(int i=0;i<k;++i) if(strcmp(stt[i].so,s)==0) return i;
  10.         return -1;
  11. }
  12. int main(){
  13.         int m;
  14.         scanf("%dn",&m);
  15.         while(m--){
  16.                 struct SoHang stt[100000];
  17.                 char s[100000]={};
  18.                 int i,j,n,k=0;
  19.                 scanf("%dn",&n);
  20.                 gets(s);
  21.                 char *p;
  22.                 for(p=strtok(s," ");p!=null;p=strtok(null," ")){
  23.                         int h=tim(stt,p,k);
  24.                         if(h==-1) {
  25.                                 strcpy(stt[k].so,p);
  26.                                 stt[k++].xh=1;
  27.                         }
  28.                         else ++stt[h].xh;
  29.                 }
  30.         for(i=0;i<k;++i){
  31.                 int check=0;
  32.                 for(j=0;j<k-1;++j){
  33.                         if(stt[j+1].xh>stt[j].xh){
  34.                                 struct SoHang t= stt[j];
  35.                                 stt[j]=stt[j+1];
  36.                                 stt[j+1]=t;
  37.                                 check=1;
  38.                         }
  39.                         if(check==0) break;
  40.                 }
  41.         }
  42.         for(i=0;i<k;++i) printf("%s %dn",stt[i].so,stt[i].xh);
  43. }
  44. }
Parsed in 0.008 seconds