#include <iostream>
using namespace std;
const int string_len = 20;
const int Uniq_Count = 100000;
const int AllString = 1000000;
const int MAX_L = (Uniq_Count+1)*(string_len+1);
int Forest[MAX_L][97];
char TestInput[Uniq_Count][string_len+1];
int main() {
// your code goes here
for (int i=0; i < Uniq_Count; i++){
for (int j=0;j<string_len;j++)
TestInput[i][j] = rand()%96 + 32;
}
int Position = 0;
int ans = 0;
for (int i=0;i<AllString;i++){
char *k = TestInput[rand()%Uniq_Count]; //get random string
int cur = 0;
for (;*k;k++){
if (Forest[cur][ *k - 32 ] == 0)
Forest[cur][ *k - 32 ] = ++Position;
cur = Forest[cur][ *k - 32 ];
}
ans += !Forest[cur][96];
Forest[cur][96] = 1;
}
cout << ans;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKCgpjb25zdCBpbnQgc3RyaW5nX2xlbiA9IDIwOwpjb25zdCBpbnQgVW5pcV9Db3VudCA9IDEwMDAwMDsKY29uc3QgaW50IEFsbFN0cmluZyA9IDEwMDAwMDA7Cgpjb25zdCBpbnQgTUFYX0wgPSAoVW5pcV9Db3VudCsxKSooc3RyaW5nX2xlbisxKTsKaW50IEZvcmVzdFtNQVhfTF1bOTddOwoKY2hhciBUZXN0SW5wdXRbVW5pcV9Db3VudF1bc3RyaW5nX2xlbisxXTsKIAoKaW50IG1haW4oKSB7CgkvLyB5b3VyIGNvZGUgZ29lcyBoZXJlCgkKCWZvciAoaW50IGk9MDsgaSA8IFVuaXFfQ291bnQ7IGkrKyl7CgkJZm9yIChpbnQgaj0wO2o8c3RyaW5nX2xlbjtqKyspCgkJCVRlc3RJbnB1dFtpXVtqXSA9IHJhbmQoKSU5NiArIDMyOwoJfQoJCglpbnQgUG9zaXRpb24gPSAwOwoJaW50IGFucyA9IDA7CgkKCWZvciAoaW50IGk9MDtpPEFsbFN0cmluZztpKyspewoJCWNoYXIgKmsgPSBUZXN0SW5wdXRbcmFuZCgpJVVuaXFfQ291bnRdOyAvL2dldCByYW5kb20gc3RyaW5nCgkJaW50IGN1ciA9IDA7CgkJZm9yICg7Kms7aysrKXsKCQkJaWYgKEZvcmVzdFtjdXJdWyAqayAtIDMyIF0gPT0gMCkKCQkJCUZvcmVzdFtjdXJdWyAqayAtIDMyIF0gPSArK1Bvc2l0aW9uOwoJCQljdXIgPSBGb3Jlc3RbY3VyXVsgKmsgLSAzMiBdOwoJCX0KCQlhbnMgKz0gIUZvcmVzdFtjdXJdWzk2XTsKCQlGb3Jlc3RbY3VyXVs5Nl0gPSAxOwoJfQoJY291dCA8PCBhbnM7CgkKCXJldHVybiAwOwp9