bool KawigiEdit_RunTest(int testNum, vector <int> p0, bool hasAnswer, int p1) {
	cout << "Test " << testNum << ": [" << "{";
	for (int i = 0; int(p0.size()) > i; ++i) {
		if (i > 0) {
			cout << ",";
		}
		cout << p0[i];
	}
	cout << "}";
	cout << "]" << endl;
	CountryGroup *obj;
	int answer;
	obj = new CountryGroup();
	clock_t startTime = clock();
	answer = obj->solve(p0);
	clock_t endTime = clock();
	delete obj;
	bool res;
	res = true;
	cout << "Time: " << double(endTime - startTime) / CLOCKS_PER_SEC << " seconds" << endl;
	if (hasAnswer) {
		cout << "Desired answer:" << endl;
		cout << "\t" << p1 << endl;
	}
	cout << "Your answer:" << endl;
	cout << "\t" << answer << endl;
	if (hasAnswer) {
		res = answer == p1;
	}
	if (!res) {
		cout << "DOESN'T MATCH!!!!" << endl;
	} else if (double(endTime - startTime) / CLOCKS_PER_SEC >= 2) {
		cout << "FAIL the timeout" << endl;
		res = false;
	} else if (hasAnswer) {
		cout << "Match :-)" << endl;
	} else {
		cout << "OK, but is it right?" << endl;
	}
	cout << "" << endl;
	return res;
}
int main()
{
	CountryGroup CG;
	vector<int> v1 = {2,2,3,3,3};
	cout<<CG.solve(v1)<<endl;
	vector<int> v2 = {1,1,1,1,1};
	cout<<CG.solve(v2)<<endl;
	vector<int> v3 = {3,3};
	cout<<CG.solve(v3)<<endl;
	vector<int> v4 = {4,4,4,4,1,1,2,2,3,3,3};
	cout<<CG.solve(v4)<<endl;
	vector<int> v5 = {2,1,2,2,1,2};
	cout<<CG.solve(v5)<<endl;
}