Pagini recente » Cod sursa (job #3291385) | Autentificare | Cod sursa (job #3068) | Cod sursa (job #666506) | Cod sursa (job #124874)
Cod sursa(job #124874)
#include <cstdio>
#include <set>
using namespace std;
class cuvant {
public:
int v[26];
bool orig;
cuvant() {
for (int i = 0; i < 26; ++i)
v[i] = 0;
orig = true;
};
void assign ( char a[] ) {
for (int i = 0; a[i] != '\0'; ++i)
++v[a[i]-'a'];
};
};
bool operator< ( const cuvant &a, const cuvant &b ) {
for (int i = 0; i < 26; ++i)
if (a.v[i] != b.v[i])
return a.v[i] < b.v[i];
return false;
}
int main() {
freopen("restante.in","rt",stdin);
freopen("restante.out","wt",stdout);
int n = 0;
scanf("%d\n",&n);
set<cuvant> s; int r = 0; char cuv[20];
for (int i = 0; i < n; ++i) {
scanf("%s\n",cuv);
cuvant a; a.assign(cuv);
if (s.find(a) == s.end()) {
s.insert(a);
++r;
} else {
if ((*(s.find(a))).orig) {
(*(s.find(a))).orig = false;
--r;
}
}
}
printf("%d\n",r);
return 0;
}