답안 #871355

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
871355 2023-11-10T16:12:15 Z hvmegy Lozinke (COCI17_lozinke) C++17
100 / 100
270 ms 16468 KB
// [ н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; 
}

Compilation message

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++) {
      |                                         ~~^~~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 1 ms 348 KB Output is correct
4 Correct 1 ms 348 KB Output is correct
5 Correct 6 ms 696 KB Output is correct
6 Correct 10 ms 856 KB Output is correct
7 Correct 13 ms 1548 KB Output is correct
8 Correct 22 ms 2392 KB Output is correct
9 Correct 61 ms 2480 KB Output is correct
10 Correct 112 ms 7504 KB Output is correct
11 Correct 91 ms 4352 KB Output is correct
12 Correct 241 ms 16468 KB Output is correct
13 Correct 180 ms 2776 KB Output is correct
14 Correct 181 ms 14984 KB Output is correct
15 Correct 270 ms 16216 KB Output is correct
16 Correct 165 ms 1524 KB Output is correct
17 Correct 42 ms 1112 KB Output is correct
18 Correct 30 ms 856 KB Output is correct
19 Correct 175 ms 8548 KB Output is correct
20 Correct 82 ms 1220 KB Output is correct