Submission #237196

#TimeUsernameProblemLanguageResultExecution timeMemory
237196MlxaLozinke (COCI17_lozinke)C++14
100 / 100
486 ms19240 KiB
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
#define int ll
#define all(x) x.begin(), x.end()
#define x first
#define y second
#define mp make_pair
#define mt make_tuple

const int N = 1e5;
map<string, int> cnt;
int n;
string str[N];

signed main() {
#ifdef LC
	assert(freopen("input.txt", "r", stdin));
#endif
	ios::sync_with_stdio(0);
	cin.tie(0);
	
	cin >> n;
	for (int i = 0; i < n; ++i) {
		string s;
		cin >> s;
		str[i] = s;
		set<string> cur;
		for (int l = 0; l < (int)s.size(); ++l) {
			for (int k = 1; k <= (int)s.size() - l; ++k) {
				cur.insert(s.substr(l, k));
			}
		}
		for (auto e : cur) {
			++cnt[e];
		}
	}
	int answer = 0;
	for (int i = 0; i < n; ++i) {
		answer += cnt[str[i]] - 1;
	}
	cout << answer << "\n";
	return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...