# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
37315 | 2017-12-23T22:04:22 Z | wasyl | Lozinke (COCI17_lozinke) | C++11 | 103 ms | 15136 KB |
#include <vector> #include <iostream> #include <algorithm> #define d(...) __VA_ARGS__ #define all(x) (x).begin(), (x).end() #define eb(...) emplace_back(__VA_ARGS__) using namespace std;using ll=long long; template<class t>using V = vector< t >; const int p = 29; const ll mod = (ll)1e15 + 37; int n; V< ll > hasze; V< string > pass; void parse ( string& s ) { V< ll > tmp; for ( int i = 0; i < s.size(); ++i ) { ll hasz = 0; for ( int k = i; k < s.size(); ++k ) { hasz = ( hasz * p + s[k] - 'a' + 1 ) % mod; tmp.eb( hasz ); } } sort( all( tmp ) ); tmp.resize( unique( all( tmp ) ) - tmp.begin() ); for ( ll h : tmp ) hasze.eb( h ); } int count ( string& s ) { ll hasz = 0; for ( char c : s ) hasz = ( hasz * p + c - 'a' + 1 ) % mod; return upper_bound( all( hasze ), hasz ) - lower_bound( all( hasze ), hasz ); } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); cin >> n; pass.resize( n ); for ( auto& i : pass ) cin >> i; for ( auto& i : pass ) parse( i ); sort( all( hasze ) ); hasze.eb( mod ); int res = 0; for ( auto& i : pass ) res += count( i ) - 1; cout << res << '\n'; }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 2180 KB | Output is correct |
2 | Correct | 0 ms | 2180 KB | Output is correct |
3 | Correct | 0 ms | 2180 KB | Output is correct |
4 | Correct | 0 ms | 2180 KB | Output is correct |
5 | Correct | 3 ms | 2632 KB | Output is correct |
6 | Correct | 3 ms | 3036 KB | Output is correct |
7 | Correct | 6 ms | 3052 KB | Output is correct |
8 | Correct | 9 ms | 3052 KB | Output is correct |
9 | Correct | 29 ms | 5608 KB | Output is correct |
10 | Correct | 46 ms | 8680 KB | Output is correct |
11 | Correct | 46 ms | 8836 KB | Output is correct |
12 | Correct | 93 ms | 14980 KB | Output is correct |
13 | Correct | 86 ms | 15136 KB | Output is correct |
14 | Correct | 73 ms | 8992 KB | Output is correct |
15 | Correct | 103 ms | 15136 KB | Output is correct |
16 | Correct | 96 ms | 15136 KB | Output is correct |
17 | Correct | 49 ms | 5916 KB | Output is correct |
18 | Correct | 33 ms | 5920 KB | Output is correct |
19 | Correct | 76 ms | 8992 KB | Output is correct |
20 | Correct | 53 ms | 8992 KB | Output is correct |