Cod sursa(job #126745)

Utilizator razvi9Jurca Razvan razvi9 Data 22 ianuarie 2008 19:25:22
Problema Restante Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include<stdio.h>
#include<string.h>
int n,i,j,k,m;
char a[36001][17];

void csort(char a[17])
{int i,j,n=strlen(a);
 for(i=0;i<n;i++)
  for(j=i+1;j<n;j++)
   if(a[i]>a[j]){a[i]=a[i]+a[j];a[j]=a[i]-a[j];a[i]=a[i]-a[j];} }

int poz(int i,int j)
{int x=0,y=-1,aux;
 char s[17];
 while(i<j){
 if(strcmp(a[i],a[j])>0)
 {aux=x;x=-y;y=-aux;
  strcpy(s,a[i]);
  strcpy(a[i],a[j]);
  strcpy(a[j],s);}
 i=i+x;j=j+y;}
 return i;}

void sort(int i,int j)
{if(i>=j) return;
 int k=poz(i,j);
 sort(i,k-1);
 sort(k+1,j);}

int main()
{freopen("restante.in","r",stdin);
 freopen("restante.out","w",stdout);
 scanf("%d",&n);
 for(i=1;i<=n;i++){
  scanf(" %s ",a[i]);
  csort(a[i]);}
 sort(1,n);
 if(strcmp(a[1],a[2])) m++;   
 if(strcmp(a[n-1],a[n])) m++;
 for(i=2;i<n;i++)
  if(strcmp(a[i-1],a[i])&&strcmp(a[i],a[i+1])) m++;
 printf("%d",m);
 fclose(stdout);
 return 0;}