Pagini recente » Cod sursa (job #1559076) | Istoria paginii utilizator/gabordragos | Cod sursa (job #1158068) | Cod sursa (job #650143) | Cod sursa (job #610437)
Cod sursa(job #610437)
#include<cstdio>
#include<vector>
#include<string>
#include<algorithm>
#define infile "restante.in"
#define outfile "restante.out"
#define lgMax 31
using namespace std;
vector <string> v;
char buff[lgMax];
int n, res;
string makeString(char v[]) {
string str;
for(int i = 0; v[i] >= 'a' && v[i] <= 'z'; ++i)
str.push_back(v[i]);
return str;
}
void read() {
scanf("%d\n", &n);
for(int i = 1; i <= n; ++i) {
scanf("%s\n", buff);
v.push_back(makeString(buff));
}
}
void solve() {
for(unsigned i = 0; i < v.size(); ++i)
sort(v[i].begin(), v[i].end());
sort(v.begin(), v.end());
for(unsigned i = 0; i < v.size(); ++i)
if(i+1 == v.size() || v[i] != v[i+1])
res++;
else {
while(i+1 < v.size() && v[i] == v[i+1]) ++i;
}
}
void write() {
printf("%d\n", res);
}
int main() {
freopen(infile, "r", stdin);
freopen(outfile, "w", stdout);
read();
solve();
write();
fclose(stdin);
fclose(stdout);
return 0;
}