60972023-10-29 19:00:51MCDaveForgó rulettkerékcpp17Időlimit túllépés 35/1001.574s5452 KiB
#include <iostream>
#include <algorithm>
#include <vector>
#include <string>

using namespace std;

string shiftToSort(string input) {
	int n = input.length();
	string sortedStr = input;

	for (int shift = 1; shift < n; shift++) {
		string shiftedStr = input.substr(shift) + input.substr(0, shift);

		if (shiftedStr < sortedStr) {
			sortedStr = shiftedStr;
		}
	}

	return sortedStr;
}


int main() {
	int n, m;
	cin >> n >> m;
	vector<string> sorted;
	vector<int> sortedi;
	for (int i = 0; i < n; i++)
	{
		string input;
		cin >> input;
		string sortedStr = shiftToSort(input);
		auto temp1 = find(sorted.begin(), sorted.end(), sortedStr);
		if (temp1 != sorted.end())
		{
			sortedi[temp1-sorted.begin()]++;
		}
		else
		{
			sorted.push_back(sortedStr);
			sortedi.push_back(1);
		}
	}

	int out=0;

	for (int i = 0; i < sorted.size(); i++)
	{
		out += (sortedi[i] * (sortedi[i]-1)) / 2;
	}
	cout << out;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva3ms1848 KiB
2Elfogadva3ms2000 KiB
subtask220/20
3Elfogadva3ms2240 KiB
4Elfogadva3ms2328 KiB
5Elfogadva3ms2548 KiB
6Elfogadva4ms2616 KiB
7Elfogadva4ms2756 KiB
8Elfogadva4ms2828 KiB
9Elfogadva4ms2960 KiB
subtask315/15
10Elfogadva52ms3092 KiB
11Elfogadva67ms3104 KiB
12Elfogadva61ms3148 KiB
13Elfogadva50ms3356 KiB
14Elfogadva61ms3816 KiB
15Elfogadva67ms4264 KiB
16Elfogadva68ms4292 KiB
17Elfogadva68ms4264 KiB
subtask40/65
18Elfogadva140ms3800 KiB
19Elfogadva135ms3868 KiB
20Elfogadva597ms4784 KiB
21Elfogadva209ms4768 KiB
22Elfogadva158ms4408 KiB
23Elfogadva326ms4092 KiB
24Elfogadva152ms5052 KiB
25Időlimit túllépés1.574s3736 KiB
26Elfogadva181ms4592 KiB
27Elfogadva211ms5084 KiB
28Időlimit túllépés1.554s4708 KiB
29Elfogadva437ms5452 KiB
30Időlimit túllépés1.565s5012 KiB