60642023-10-29 11:42:43GervidForgó rulettkerékcpp17Időlimit túllépés 35/1001.565s5904 KiB
#include <iostream>
#include <vector>

using namespace std;

int main()
{
    int n, m, i, j, k, x;
    cin >> n >> m;

    vector<string> patterns(1);
    patterns.reserve(n);

    cin >> patterns[0];

    vector<int> count(1, 1);
    count.reserve(n);

    string tag;

    for (i = 1; i < n; i++)
    {
        cin >> tag;
        x = 0, k = 0;

        for (j = 0; j < patterns.size(); j++)
        {
            for (k = 0; k < m; k++)
            {
                while (x < m && (x + k < m && tag[x+k] == patterns[j][x]) || (x + k >= m && tag[x + k - m] == patterns[j][x]))
                {
                    x++;
                }
            
                if (x == m)
                {
                    count[j]++;
                    break;
                }

                x = 0;
            }
            if (x == m)
            {
                break;
            }
        }

        if (x != m)
        {
            patterns.push_back(tag);
            count.push_back(1);
        }
    }

    int sum = 0;

    for (i = 0; i < count.size(); i++)
    {
        if (count[i] > 1)
        {
            sum += (count[i] * (count[i]-1)) >> 1;
        }
    }

    cout << sum;
}
//4 4
//abcd
//xbcd
//cdab
//dabc
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva3ms1684 KiB
2Elfogadva3ms1932 KiB
subtask220/20
3Elfogadva2ms2008 KiB
4Elfogadva3ms2056 KiB
5Elfogadva3ms2276 KiB
6Elfogadva3ms2488 KiB
7Elfogadva6ms2740 KiB
8Elfogadva3ms2956 KiB
9Elfogadva3ms3180 KiB
subtask315/15
10Elfogadva25ms3412 KiB
11Elfogadva43ms3460 KiB
12Elfogadva126ms3516 KiB
13Elfogadva32ms3508 KiB
14Elfogadva52ms3844 KiB
15Elfogadva626ms4196 KiB
16Elfogadva670ms4592 KiB
17Elfogadva1.014s4496 KiB
subtask40/65
18Elfogadva182ms4228 KiB
19Elfogadva523ms4416 KiB
20Elfogadva432ms5236 KiB
21Elfogadva1.243s5288 KiB
22Elfogadva554ms4872 KiB
23Elfogadva134ms4816 KiB
24Időlimit túllépés1.557s4384 KiB
25Elfogadva303ms5220 KiB
26Elfogadva377ms4924 KiB
27Időlimit túllépés1.526s4640 KiB
28Időlimit túllépés1.565s5068 KiB
29Időlimit túllépés1.514s5904 KiB
30Időlimit túllépés1.557s5100 KiB