62962023-11-13 17:46:08aballaForgó rulettkerékcpp17Hibás válasz 0/1001.616s12136 KiB
#include <bits/stdc++.h>

int n, m;
std::vector<int> a = {}, b = {};

std::string tagid2(std::string str) {
    a = {};
    int i = 0;
    char min = str[0];
    std::string str2 = str + str;

    for(auto x : str) {
        if (x < min) {
            a = {i};
            min = x;
        } else if (x == min) {
            a.push_back(i);
        }
        i++;
    }

    while(a.size() > 1) {
        b = {};
        min = str[a[0]+1];
        i = 0;
        for(auto x : a) {
            if (str[x+1] < min) {
                b = {i};
                min = str[x+1];
            } 
            else if (str[x+1] == min) {
                b.push_back(i);
            }
            i++;
        }
        a = b;
    }
    return std::string(&str2[a[0]], &str2[a[0]+m]);
}

int main() {
    long long count = 0, cc = 1;
    std::ios::sync_with_stdio(false);
    std::cin.tie(0);

    std::string cache;
    std::vector<std::string> ids;
    std::vector<int> veccount;
    std::unordered_map<std::string, int> map;

    std::cin >> n >> m;
    
    for(int i = 0; i < n; i++) {
        std::cin >> cache; 
        ids.push_back(tagid2(cache));
    }

    map.insert({ids[0], 0});
    veccount.push_back(1);

    for(int i = 1; i < n; i++) {

        if (auto search = map.find(ids[i]); search != map.end()) {
            veccount[search->second]++;
        }
        else {
            map.insert({ids[i], cc});
            veccount.push_back(1);
            cc++;
        }
    }

    for(const auto x : veccount) {
        count += x*(x-1);
    }
    std::cout << count/2 << std::flush;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva3ms1824 KiB
2Hibás válasz3ms2336 KiB
subtask20/20
3Hibás válasz3ms2296 KiB
4Időlimit túllépés1.6s2316 KiB
5Időlimit túllépés1.549s1808 KiB
6Időlimit túllépés1.562s2612 KiB
7Időlimit túllépés1.562s2600 KiB
8Időlimit túllépés1.565s2608 KiB
9Időlimit túllépés1.616s2024 KiB
subtask30/15
10Időlimit túllépés1.585s2384 KiB
11Időlimit túllépés1.593s3192 KiB
12Időlimit túllépés1.55s2524 KiB
13Időlimit túllépés1.557s2800 KiB
14Időlimit túllépés1.598s2996 KiB
15Időlimit túllépés1.577s3824 KiB
16Időlimit túllépés1.549s3104 KiB
17Időlimit túllépés1.57s4036 KiB
subtask40/65
18Időlimit túllépés1.562s3952 KiB
19Időlimit túllépés1.57s4044 KiB
20Időlimit túllépés1.562s3668 KiB
21Időlimit túllépés1.572s4332 KiB
22Időlimit túllépés1.557s4268 KiB
23Időlimit túllépés1.557s4344 KiB
24Időlimit túllépés1.582s3520 KiB
25Hibás válasz13ms8552 KiB
26Időlimit túllépés1.597s4452 KiB
27Időlimit túllépés1.554s4392 KiB
28Hibás válasz14ms12136 KiB
29Időlimit túllépés1.598s3776 KiB
30Időlimit túllépés1.565s4380 KiB