Pagini recente » Cod sursa (job #1125809) | Cod sursa (job #235854) | Cod sursa (job #1740372) | Cod sursa (job #2210099) | Cod sursa (job #690866)
Cod sursa(job #690866)
#include <cstdio>
#include <algorithm>
using namespace std;
struct cuvant {
char a[20];
int l;
bool o;
};
cuvant v[36005];
char a[20];
int n,i,nr,l;
int leng (char a[20]) {
int l=0;
for (int i=0;i<=18;i++) if (a[i]!=(char)0) l=i+1;
return l;
}
bool check (cuvant &a,cuvant &b) {
for (int i=0;i<a.l;i++) if (a.a[i]!=b.a[i]) return 0;
return 1;
}
bool cmp(cuvant a,cuvant b) {
if (a.l<b.l) return 1;
else if (a.l>b.l) return 0;
int i;
for (i=0;i<a.l;i++) if (a.a[i]<b.a[i]) return 1;
return 0;
}
int main() {
freopen("restante.in","r",stdin);
freopen("restante.out","w",stdout);
scanf("%d",&n);
for (i=1;i<=n;i++) {
scanf("%s",v[i].a);
v[i].l=leng(v[i].a);
sort(v[i].a,v[i].a+v[i].l);
}
sort(v+1,v+n+1,cmp);
for (i=1;i<n;i++) if (check(v[i],v[i+1])) v[i].o=v[i+1].o=true;
for (i=1;i<=n;i++) if (!v[i].o) nr++;
printf("%d",nr);
return 0;
}