60822023-10-29 16:43:54MCDaveForgó rulettkerékcpp17Időlimit túllépés 20/1001.58s19124 KiB
#include <iostream>
#include <vector>
#include <string>
#include <set>
#include <queue>

using namespace std;

int main()
{
	int n, m;
	cin >> n >> m;

	vector<string> cimkek(n);

	for (int i = 0; i < n; i++)
	{
		cin >> cimkek[i];
	}
	int index=0;
	set<int> been;
	vector<int> count;
	while (index != n and been.size() != n)
	{
		if (!been.count(index))
		{
			int temp1=1;
			for (int shift = 0; shift < m; shift++)
			{
				string current = cimkek[index];
				for (int i = 0; i < m; i++) {
					int newIndex = (i - shift + m) % m;
					current[newIndex] = cimkek[index][i];
				}
				for (int str = index+1; str < n; str++)
				{
					if (!been.count(str) and cimkek[str] == current)
					{
						been.insert(str);
						temp1++;
					}
				}
			}
			if (temp1>1)
			{
				count.push_back(temp1);
			}
			temp1 = 1;
		}
		index++;
	}

	int out = 0;

	for (int i = 0; i < count.size(); i++)
	{
		out += (count[i] * (count[i] - 1)) / 2;
	}
	cout << out;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva3ms1816 KiB
2Elfogadva3ms2060 KiB
subtask220/20
3Elfogadva3ms2244 KiB
4Elfogadva3ms2488 KiB
5Elfogadva3ms2672 KiB
6Elfogadva4ms2744 KiB
7Elfogadva12ms2872 KiB
8Elfogadva4ms3084 KiB
9Elfogadva6ms3308 KiB
subtask30/15
10Elfogadva279ms4500 KiB
11Elfogadva412ms4500 KiB
12Elfogadva948ms4512 KiB
13Elfogadva402ms4736 KiB
14Elfogadva305ms4828 KiB
15Időlimit túllépés1.565s3864 KiB
16Időlimit túllépés1.552s3788 KiB
17Időlimit túllépés1.58s4040 KiB
subtask40/65
18Időlimit túllépés1.565s5208 KiB
19Időlimit túllépés1.565s5100 KiB
20Időlimit túllépés1.57s4872 KiB
21Időlimit túllépés1.549s5452 KiB
22Időlimit túllépés1.526s5176 KiB
23Elfogadva828ms6724 KiB
24Időlimit túllépés1.565s5508 KiB
25Időlimit túllépés1.57s5292 KiB
26Időlimit túllépés1.554s12880 KiB
27Időlimit túllépés1.562s6480 KiB
28Időlimit túllépés1.508s5464 KiB
29Időlimit túllépés1.57s19124 KiB
30Időlimit túllépés1.57s13192 KiB