38 lines
752 B
C++
38 lines
752 B
C++
#include <algorithm>
|
|
#include <cstdio>
|
|
#include <cstring>
|
|
#include <iostream>
|
|
#include <istream>
|
|
using namespace std;
|
|
|
|
using ull= unsigned long long;
|
|
|
|
ull base = 131;
|
|
ull a[10010];
|
|
char s[10010];
|
|
int n, ans = 1;
|
|
int prime = 233317;
|
|
const ull mod = 212370440130137957ll;
|
|
|
|
ull mhash(char *s) {
|
|
int len = strlen(s);
|
|
ull ans = 0;
|
|
for (int i = 0; i < len; i++)
|
|
ans = (ans * base + (ull)s[i]) % mod + prime;
|
|
return ans;
|
|
}
|
|
|
|
int main() {
|
|
iostream::sync_with_stdio(false);cin.tie(nullptr),cout.tie(nullptr);
|
|
cin >> n;
|
|
for (int i = 1; i <= n; i++) {
|
|
cin >> s;
|
|
a[i] = mhash(s);
|
|
}
|
|
sort(a + 1, a + n + 1);
|
|
for (int i = 1; i < n; i++) {
|
|
if (a[i] != a[i + 1])
|
|
ans++;
|
|
}
|
|
cout << ans << '\n';
|
|
} |