Submission #938527

#TimeUsernameProblemLanguageResultExecution timeMemory
938527sapientsapiensLozinke (COCI17_lozinke)C++14
100 / 100
294 ms16720 KiB
/*
 
 At Most 10 lowercase letters of the English Alphabet -> We should think in terms of the alphabet and the orientation
 What is the fastest, most efficient way to check if one string is a subset of another
 Of course there isn't some magical way to compare two strings. The solution: Don't compare two strings. Have a frequency array of how many each substring appears
  
 */
#include <iostream>
#include <string>
#include <utility>
#include <string>
#include <map>

using namespace std;

int n;
string str[20005];
map<string, int> mp;

int main() {
    cin >> n;
    for(int i = 0; i < n; i++) {
        cin >> str[i];
        map<string, int> temp;
        for(int j = 0; j < str[i].size(); j++) {
            for(int k = j; k < str[i].size(); k++) {
                string exp;
                for(int l = j; l <= k; l++) {
                    exp += str[i][l];
                }
                temp[exp] = 1;
            }
        }
        for (const auto &p : temp) {
            // Now you can access the key using p.first and the value using p.second
            mp[p.first] ++; // Example operation
        }
    }
    int ans = 0;
    for(int i = 0; i < n; i++) {
        ans += mp[str[i]] -1;
    }
    cout << ans;
    
    return 0;
}

Compilation message (stderr)

lozinke.cpp: In function 'int main()':
lozinke.cpp:25:26: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   25 |         for(int j = 0; j < str[i].size(); j++) {
      |                        ~~^~~~~~~~~~~~~~~
lozinke.cpp:26:30: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   26 |             for(int k = j; k < str[i].size(); k++) {
      |                            ~~^~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...