61002023-10-29 19:07:37MCDaveForgó rulettkerékcpp17Időlimit túllépés 35/1001.557s14452 KiB
#include <iostream>
#include <vector>
#include <string>
#include <unordered_map>

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);

		sortedStr = min(sortedStr, shiftedStr);
	}

	return sortedStr;
}

int main() {
	int n, m;
	cin >> n >> m;
	unordered_map<string, int> sortedCount;

	for (int i = 0; i < n; i++) {
		string input;
		cin >> input;
		string sortedStr = shiftToSort(input);
		sortedCount[sortedStr]++;
	}

	long long out = 0;

	for (const auto& entry : sortedCount) {
		int count = entry.second;
		out += (count * 1LL * (count - 1)) / 2;
	}

	cout << out;

}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva3ms1708 KiB
2Elfogadva3ms1932 KiB
subtask220/20
3Elfogadva3ms2144 KiB
4Elfogadva3ms2224 KiB
5Elfogadva3ms2480 KiB
6Elfogadva4ms2596 KiB
7Elfogadva4ms2828 KiB
8Elfogadva4ms2908 KiB
9Elfogadva4ms3108 KiB
subtask315/15
10Elfogadva54ms3244 KiB
11Elfogadva68ms3400 KiB
12Elfogadva63ms3496 KiB
13Elfogadva52ms3852 KiB
14Elfogadva61ms3888 KiB
15Elfogadva68ms4468 KiB
16Elfogadva68ms4984 KiB
17Elfogadva68ms4760 KiB
subtask40/65
18Elfogadva143ms4260 KiB
19Elfogadva135ms4296 KiB
20Elfogadva598ms5036 KiB
21Elfogadva210ms4872 KiB
22Elfogadva162ms4700 KiB
23Elfogadva312ms4568 KiB
24Elfogadva148ms5268 KiB
25Időlimit túllépés1.557s3768 KiB
26Elfogadva118ms4608 KiB
27Elfogadva150ms5540 KiB
28Időlimit túllépés1.557s4792 KiB
29Elfogadva119ms6292 KiB
30Elfogadva137ms14452 KiB