Submission #233107

#TimeUsernameProblemLanguageResultExecution timeMemory
233107PeppaPigLozinke (COCI17_lozinke)C++14
100 / 100
328 ms13220 KiB
#include <bits/stdc++.h> #define long long long using namespace std; const int N = 2e4+5; const int P = 1e9+7; int n, ans; char S[N][15]; map<long, int> mp; int main() { scanf("%d", &n); for(int i = 1; i <= n; i++) { scanf(" %s", S[i] + 1); long hsh = 0; for(int j = 1; j <= strlen(S[i] + 1); j++) hsh = hsh * P + S[i][j]; ++mp[hsh]; } for(int i = 1; i <= n; i++) { int len = strlen(S[i] + 1); set<long> st; for(int j = 1; j <= len; j++) { long hsh = 0; for(int k = j; k <= len; k++) { hsh = hsh * P + S[i][k]; if(st.find(hsh) == st.end()) { ans += mp[hsh]; if(j == 1 && k == len) --ans; st.emplace(hsh); } } } } printf("%d\n", ans); return 0; }

Compilation message (stderr)

lozinke.cpp: In function 'int main()':
lozinke.cpp:19:26: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for(int j = 1; j <= strlen(S[i] + 1); j++)
                        ~~^~~~~~~~~~~~~~~~~~~
lozinke.cpp:15:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d", &n);
     ~~~~~^~~~~~~~~~
lozinke.cpp:17:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf(" %s", S[i] + 1);
         ~~~~~^~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...