Submission #420600

#TimeUsernameProblemLanguageResultExecution timeMemory
420600p_squareMonochrome Points (JOI20_monochrome)C++14
25 / 100
2065 ms300 KiB
#include<bits/stdc++.h>

#define fast ios::sync_with_stdio(0), cin.tie(0), cout.tie(0)
#define ll long long
#define mp make_pair
#define se second
#define fi first

using namespace std;

bool intersect(int l1, int r1, int l2, int r2)
{
	if(l1 > r1)
	{
		swap(l1, r1);
	}
	if(l2 > r2)
	{
		swap(l2, r2);
	}
	if(l1 > l2)
	{
		swap(l1, l2);
		swap(r1, r2);
	}
	if(r1 > l2 && r1 < r2)
		return true;
	return false;
}

int main()
{
	int n;
	cin>>n;
	string S;
	cin>>S;
	vector <int> W, B;

	for(int i = 0; i<2*n; i++)
	{
		if(S.at(i) == 'W')
			W.push_back(i);
		else
			B.push_back(i);
	}

	int l1, l2, r1, r2, ct = 0, mi = 0;
	for(int k = 0; k<n; k++)
	{
		ct = 0;
		for(int i = 0; i<n; i++)
		{
			for(int j = 0; j<i; j++)
			{
				l1 = B[i];
				l2 = B[j];
				r1 = W[(i+k)%n];
				r2 = W[(j+k)%n];
				if(intersect(l1, r1, l2, r2))
					ct++;
			}
		}

		mi = max(ct, mi);
	}
	
	cout<<mi<<endl;

}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...