제출 #871355

#제출 시각아이디문제언어결과실행 시간메모리
871355hvmegyLozinke (COCI17_lozinke)C++17
100 / 100
270 ms16468 KiB
// [ нvмegy ]
// OLPCHUYENTIN2023 GOTOHUE
#include <bits/stdc++.h>
using namespace std;
using i64 = long long;
 
#define int long long
#define all(c) c.begin(), c.end()
#ifdef hvmegy
#define dbg(...) logger(#__VA_ARGS__, __VA_ARGS__)
template<typename ...Args>
void logger(string vars, Args&&... values) {
        cerr << "[" << vars << " : ";
        string delim = "";
        (..., (cerr << delim << values, delim = ", "));
        cerr << "]" << '\n'; 
}
#else
#define dbg(...)
#endif
 
mt19937_64 rnd(chrono::steady_clock::now().time_since_epoch().count());
 
int GOTOHUE();
void init(); 
 
int32_t main()
{
        cin.tie(0) -> sync_with_stdio(0); 
        cout << fixed << setprecision(15);
        
        #ifdef hvmegy
        freopen("input.txt", "r", stdin); 
        freopen("output.txt", "w", stdout); 
        freopen("log.txt", "w", stderr);
        #endif



        // =============================
                bool MULTITEST = 0; 
        // =============================
        
        init(); 
        int OLPCHUYENTIN2023 = 1; 
        if (MULTITEST) cin >> OLPCHUYENTIN2023; 
        for (int i = 1; i <= OLPCHUYENTIN2023; i++) {
                if (GOTOHUE()) break;
                #ifdef hvmegy
                        cout << "--ENDTEST--" << '\n';
                        cerr << "--ENDTEST--" << '\n';
                #endif
        }

        #ifdef hvmegy
                cerr << '\n' << clock() * 1000.0 / CLOCKS_PER_SEC << "ms" << '\n';
        #endif

        return 0;
}

void init() { 
}

int GOTOHUE() { 
        int n; 
        cin >> n; 
        map<string, int> mp; 
        vector<string> s(n + 1); 
        for (int i = 1; i <= n; i++) { 
                cin >> s[i]; 
        }
        int ans = 0; 
        for (int i = 1; i <= n; i++) { 
                set<string> sto; 
                for (int l = 0; l < s[i].size(); l++) { 
                        string t; 
                        for (int r = l; r < s[i].size(); r++) { 
                                t += s[i][r]; 
                                sto.insert(t); 
                        }
                }
                for (string t : sto) mp[t]++; 
        }
        for (int i = 1; i <= n; i++) { 
                dbg(mp[s[i]]); 
                ans += mp[s[i]] - 1; 
        }
        cout << ans; 
        return 0; 
}

컴파일 시 표준 에러 (stderr) 메시지

lozinke.cpp: In function 'long long int GOTOHUE()':
lozinke.cpp:76:35: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   76 |                 for (int l = 0; l < s[i].size(); l++) {
      |                                 ~~^~~~~~~~~~~~~
lozinke.cpp:78:43: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   78 |                         for (int r = l; r < s[i].size(); r++) {
      |                                         ~~^~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...