65632023-12-11 18:33:53GervidForgó rulettkerékcpp17Hibás válasz 0/1001.565s5584 KiB
#include <iostream>
#include <vector>

using namespace std;

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

	vector<int> count;
	vector<string> orderedcodes;
	string raw;

	for (i = 0; i < n; i++)
	{
		cin >> raw;
		
		raw += raw;

		vector<int> candidates;

		char min = 'z';

		for (j = 0; j < m; j++)
		{
			if (raw[j] < min)
			{
				min = raw[j];
			}
		}

		for (j = 0; j < m; j++)
		{
			if (raw[j] == min)
			{
				candidates.push_back(j);
			}
		}

		j = 1;
		while (candidates.size() > 1 && j < m)
		{
			min = 'z';
			for (k = 0; k < candidates.size(); k++)
			{
				if (raw[candidates[k]+j] < min)
				{
					min = raw[candidates[k] + j];
				}
			}

			for (k = 0; k < candidates.size(); k++)
			{
				if (raw[candidates[k]+j] > min)
				{
					candidates.erase(candidates.begin()+k);
					if (candidates.size() == 1)
					{
						break;
					}
				}
			}

			j++;
		}

		string ordered;

		for (j = 0; j < m; j++)
		{
			ordered.push_back(raw[candidates[0] + j]);
		}

		for (j = 0; j < orderedcodes.size(); j++)
		{
			if (ordered == orderedcodes[j])
			{
				count[j]++;
				break;
			}
		}

		if (j == orderedcodes.size())
		{
			orderedcodes.push_back(ordered);
			count.push_back(1);
		}
	}

	int out = 0;

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

	cout << out;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva3ms1808 KiB
2Elfogadva3ms2088 KiB
subtask20/20
3Elfogadva3ms2212 KiB
4Hibás válasz3ms2300 KiB
5Hibás válasz3ms2656 KiB
6Hibás válasz4ms2748 KiB
7Elfogadva4ms2932 KiB
8Hibás válasz4ms3156 KiB
9Hibás válasz4ms3224 KiB
subtask30/15
10Hibás válasz48ms3116 KiB
11Hibás válasz68ms3192 KiB
12Hibás válasz59ms3584 KiB
13Hibás válasz48ms3464 KiB
14Hibás válasz50ms3392 KiB
15Hibás válasz54ms3896 KiB
16Elfogadva52ms4260 KiB
17Hibás válasz50ms3828 KiB
subtask40/65
18Hibás válasz108ms3540 KiB
19Hibás válasz101ms3540 KiB
20Hibás válasz759ms4332 KiB
21Hibás válasz233ms4308 KiB
22Hibás válasz128ms3940 KiB
23Hibás válasz377ms3756 KiB
24Hibás válasz130ms4536 KiB
25Hibás válasz1.126s4516 KiB
26Hibás válasz177ms3980 KiB
27Hibás válasz168ms4572 KiB
28Időlimit túllépés1.562s5584 KiB
29Hibás válasz402ms4996 KiB
30Időlimit túllépés1.565s4160 KiB