1890A - Doremy's Paint 3 - CodeForces Solution


constructive algorithms

Please click on ads to support us..

C++ Code:

//code by RJ10

#include<bits/stdc++.h>

using namespace std;


#define endl "\n"
#define print(a) for(auto x : a) cout << x << " "; cout << endl
#define print1(a) for(auto x : a) cout << x.first << " " << x.second << endl
#define print2(a,x,y) for(int i = x; i < y; i++) cout<< a[i]<< " "; cout << endl
#define bug(...) __f (#__VA_ARGS__, __VA_ARGS__)

template <typename Arg1>
void __f (const char* name, Arg1&& arg1) { cout << name << " : " << arg1 << endl; }
template <typename Arg1, typename... Args>
void __f (const char* names, Arg1&& arg1, Args&&... args)
{
	const char* comma = strchr (names + 1, ',');
	cout.write (names, comma - names) << " : " << arg1 << " | "; __f (comma + 1, args...);
}

#define mod 1000000007;
int main()
{
	ios_base::sync_with_stdio(false); 
	cin.tie(NULL); 
	cout.tie(NULL);

	int t=1;
	cin>>t;
	while (t--)
	{
		int n;
		cin>>n;
		vector<int> v(n);
		for(int i=0 ; i<n ; i++)
		{
			cin>>v[i];
		}
		// bug(n);
		if(n==1 || n==2)
		{
			cout<<"YES"<<endl;
			continue;
		}
		unordered_map<int,int> umap;
		for(int i=0 ; i<n ; i++)
		{
			umap[v[i]]++;
		}

		if(umap.size()==1)
		{
			cout<<"YES"<<endl;
			continue;
		}
		if(umap.size()>2)
		{
			cout<<"NO"<<endl;
			continue;
		}
		int i=-1;
		int j=0;
		for(auto it:umap)
		{
			if(i!=-1)
			{
				if(abs(i-it.second)<=1)
				{
					cout<<"YES"<<endl;
					j=1;
				}
			}else {
				i=it.second;
			}
		}

		if(j==0) cout<<"NO"<<endl;

	}

	return 0;
}


Comments

Submit
0 Comments
More Questions

49A - Sleuth
1541A - Pretty Permutations
1632C - Strange Test
673A - Bear and Game
276A - Lunch Rush
1205A - Almost Equal
1020B - Badge
1353A - Most Unstable Array
770A - New Password
1646B - Quality vs Quantity
80A - Panoramix's Prediction
1354B - Ternary String
122B - Lucky Substring
266B - Queue at the School
1490A - Dense Array
1650B - DIV + MOD
1549B - Gregor and the Pawn Game
553A - Kyoya and Colored Balls
1364A - XXXXX
1499B - Binary Removals
1569C - Jury Meeting
108A - Palindromic Times
46A - Ball Game
114A - Cifera
776A - A Serial Killer
25B - Phone numbers
1633C - Kill the Monster
1611A - Make Even
1030B - Vasya and Cornfield
1631A - Min Max Swap