Submission #97752

#TimeUsernameProblemLanguageResultExecution timeMemory
97752dalgerokLozinke (COCI17_lozinke)C++17
75 / 100
1066 ms16716 KiB
#include<bits/stdc++.h> using namespace std; map < string, int > q; inline void add(string &s){ map < string, int > used; for(int i = 0; i < (int)s.size(); i++){ string t; for(int j = i; j < (int)s.size(); j++){ t += s[j]; if(used.find(t) == used.end()){ q[t] += 1; used[t] = true; } } } } inline void del(string &s){ map < string, int > used; for(int i = 0; i < (int)s.size(); i++){ string t; for(int j = i; j < (int)s.size(); j++){ t += s[j]; if(used.find(t) == used.end()){ q[t] -= 1; used[t] = false; } } } } int main(){ ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); int n; cin >> n; string s[n]; for(int i = 0; i < n; i++){ cin >> s[i]; add(s[i]); } int ans = 0; for(int i = 0; i < n; i++){ del(s[i]); ans += q[s[i]]; add(s[i]); } cout << ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...