Submission #928055

# Submission time Handle Problem Language Result Execution time Memory
928055 2024-02-15T19:37:36 Z xad Lozinke (COCI17_lozinke) C++14
100 / 100
148 ms 2348 KB
#include <bits/stdc++.h>
using namespace std;
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;
#define ordered_set tree<int, null_type, less_equal<int>, rb_tree_tag, tree_order_statistics_node_update>
#define nn "\n"
#define x_x ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define intt int _; cin >> _; while (_--)
#define emp push_back
#define mod 1000000007
#define all(v) v.begin(), v.end()
#define ld long double
#define A first
#define B second
typedef long long ll;
const ld eps = 1e-27;
// diff between decimals 0.000000001 mt19937 mt(time(nullptr));
int fx[]={1,-1,0,0}, fy[]={0,0,1,-1};

int main() {
    /*freopen("measurement.in","r",stdin);
    freopen("measurement.out","w", stdout);*/

    x_x
    int n; cin>>n; string ar[n]; map<string,int>mp;
    for (auto&i:ar) cin>>i, mp[i]++;
    ll ans=0;
    for (int i=0; i<n; i++ ){
            mp[ar[i]]--; map<string,bool>M;
        for (int j=1; j<=ar[i].size(); j++) {
            for (int k=0; (k+j)<=ar[i].size(); k++) {
                if (M.find(ar[i].substr(k,j))==M.end()&&mp.find(ar[i].substr(k,j))!=mp.end())
                    ans+=mp[ar[i].substr(k,j)], M[ar[i].substr(k,j)]=1;
            }
        }
        ++mp[ar[i]];
    }
    cout<<ans;
   return 0;
}

Compilation message

lozinke.cpp: In function 'int main()':
lozinke.cpp:31:24: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   31 |         for (int j=1; j<=ar[i].size(); j++) {
      |                       ~^~~~~~~~~~~~~~
lozinke.cpp:32:32: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   32 |             for (int k=0; (k+j)<=ar[i].size(); k++) {
      |                           ~~~~~^~~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 1 ms 344 KB Output is correct
4 Correct 1 ms 348 KB Output is correct
5 Correct 6 ms 348 KB Output is correct
6 Correct 8 ms 348 KB Output is correct
7 Correct 12 ms 644 KB Output is correct
8 Correct 8 ms 604 KB Output is correct
9 Correct 75 ms 1116 KB Output is correct
10 Correct 50 ms 1116 KB Output is correct
11 Correct 114 ms 1640 KB Output is correct
12 Correct 117 ms 1624 KB Output is correct
13 Correct 141 ms 1880 KB Output is correct
14 Correct 148 ms 2348 KB Output is correct
15 Correct 110 ms 1884 KB Output is correct
16 Correct 112 ms 1172 KB Output is correct
17 Correct 32 ms 856 KB Output is correct
18 Correct 29 ms 856 KB Output is correct
19 Correct 123 ms 2016 KB Output is correct
20 Correct 124 ms 1112 KB Output is correct