alg2025/src/2/P3370.cpp
2025-02-14 14:10:10 +08:00

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';
}