Cod sursa(job #184225)

Utilizator katakunaCazacu Alexandru katakuna Data 23 aprilie 2008 12:26:06
Problema Restante Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.29 kb
#include<fstream.h>
#include<string.h>
int ok,c,p,n,i,j,k,sol=0,q;
char v[36001][17],aux[100],aux2;


void sort(){

 for(i=2;i<=k;i++){
  c=i;
  p=c>>1;

     while((p)&&( strcmp(v[c],v[p])>0 )){
     strcpy(aux,v[c]);
     strcpy(v[c],v[p]);
     strcpy(v[p],aux);

     c=p;
     p=c>>1;

     }
  
  }   
  
  
  for(i=k;i>1;i--){   
  strcpy(aux,v[i]);   
  strcpy(v[i],v[1]);   
  strcpy(v[1],aux);   
  p=1;   
  c=p<<1;   
  
    k--;   
  
      while(c<=k){   
       if(strcmp(v[c+1],v[c])>0&&c<k){c++;}   
  
       if(strcmp(v[c],v[p])>0){   
       strcpy(aux,v[p]);   
       strcpy(v[p],v[c]);   
       strcpy(v[c],aux);   
       p=c;   
       c=p<<1;   
       }   
       else{break;}   
     }   
  }   
  
}   
  


int main()
{
ifstream f("restante.in");
ofstream g("restante.out");

f>>n;f.get();

for(i=1;i<=n;i++)
 {
  f.get(v[i],16);

  f.get();

  ok=1;
  while(ok){
  ok=0;

    for(j=0;j<(strlen(v[i])-1);j++){
      if(v[i][j]>v[i][j+1]){
      aux2=v[i][j];
      v[i][j]=v[i][j+1];
      v[i][j+1]=aux2;
      ok=1;
      }
    }

  }

 }
sort();

sol=0;

for(i=1;i<=n;i++)
  if(strcmp(v[i],v[i-1])&&strcmp(v[i],v[i+1]))
  sol++;

g<<sol;
f.close();
g.close();
return 0;
}