Cod sursa(job #319554)

Utilizator doru.nituNitu Doru Constantin doru.nitu Data 1 iunie 2009 07:44:46
Problema Restante Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
struct lm
{ int nr;
  char s[20];
} b[36009];

int scmp(char *a,char *b)
{
    int i;
    for(i=0;a[i]&&b[i];++i)
          if(a[i]<b[i]) return 1;
          else if(a[i]>b[i]) return 0;
    return 0;
}

int fcomp(lm a,lm b)
{ int x=strlen(a.s),y=strlen(b.s),z;
  if(x!=y) return x<y;
  return scmp(a.s,b.s);
}  

int i,j,n,nr,k,a[36009];
int main()
{ freopen("restante.in","r",stdin);
  freopen("restante.out","w",stdout);
  scanf("%d",&n);
  for(i=1;i<=n;i++) { scanf("%s",&b[i].s);
                      k=strlen(  b[i].s);
                      sort(b[i].s,b[i].s+k);
                    }
  sort(b+1,b+n+1,fcomp);
  for(i=2;i<=n;i++)  if(scmp(b[i].s,b[i-1].s)==0) a[i]=1,a[i-1]=1;;
  k=0;
  for(i=1;i<=n;i++) if(!a[i])k++;
  printf("%d\n",k);
  fclose(stdin);
  fclose(stdout);
  return 0;
}