coderforces 1984A 题型:思维题

165 阅读1分钟

Problem - A - Codeforces

题解

image.png

题目这里给出一种解,就是让最小值和最大值不相等,这样蓝色的范围永远不可能为0.

然后我们再随便挑一个不是最小最大值的元素作为红色,红色的最小最大值都是自身,它的范围就是0.

这样蓝色和红色永远不会冲突,且保证红蓝同时存在(n>=3)

证明

那么这个解是否是正解呢?即是否当最小值等于最大值时,一定不合法.

答案是一定的,因为如果当最小值=最大值时(范围为0),中间的部分一定是相同的,范围一定为0. image.png

code

#include<bits/stdc++.h>
using namespace std;
int t;
const int N=100;
int a[N];

void solve()
{

	int n;cin>>n;
	for(int i=0;i<n;i++)cin>>a[i];
	
	if(a[0]==a[n-1])cout<<"NO"<<endl;
	else
	{
		cout<<"YES"<<endl;
		string s(n,'R');
		s[1]='B';
		cout<<s<<endl;
	}
}
int main()
{
	cin>>t;
	while(t--)
	{
		solve();
	}
	return 0;
}

image.png