There are N points (numbered from 0 to N−1) on a plane. Each point is colored either red ('R') or green ('G'). The K-th point is located at coordinates (X[K], Y[K]) and its color is colors[K]. No point lies on coordinates (0, 0).
We want to draw a circle centered on coordinates (0, 0), such that the number of red points and green points inside the circle is equal. What is the maximum number of points that can lie inside such a circle? Note that it is always possible to draw a circle with no points inside.
Write a function:
class Solution { public int solution(int[] X, int[] Y, string colors); }
that, given two arrays of integers X, Y and a string colors, returns an integer specifying the maximum number of points inside a circle containing an equal number of red points and green points.
Examples:
1. Given X = [4, 0, 2, −2], Y = [4, 1, 2, −3] and colors = "RGRR", your function should return 2. The circle contains points (0, 1) and (2, 2), but not points (−2, −3) and (4, 4).
2. Given X = [1, 1, −1, −1], Y = [1, −1, 1, −1] and colors = "RGRG", your function should return 4. All points lie inside the circle.
3. Given X = [1, 0, 0], Y = [0, 1, −1] and colors = "GGR", your function should return 0. Any circle that contains more than zero points has an unequal number of green and red points.
4. Given X = [5, −5, 5], Y = [1, −1, −3] and colors = "GRG", your function should return 2.
5. Given X = [3000, −3000, 4100, −4100, −3000], Y = [5000, −5000, 4100, −4100, 5000] and colors = "RRGRG", your function should return 2.
Write an efficient algorithm for the following assumptions:
- N is an integer within the range [1..100,000];
- each element of arrays X and Y is an integer within the range [−20,000..20,000];
- string colors is made only of the characters 'R' and/or 'G';
- no point lies on the coordinates (0, 0).
using System;
// you can also use other imports, for example:
// using System.Collections.Generic;
// you can write to stdout for debugging purposes, e.g.
// Console.WriteLine("this is a debug message");
class Solution {
public int solution(int[] X, int[] Y, string colors) {
// write your code in C# 6.0 with .NET 4.5 (Mono)
}
}
using System;
// you can also use other imports, for example:
// using System.Collections.Generic;
// you can write to stdout for debugging purposes, e.g.
// Console.WriteLine("this is a debug message");
class Solution {
public int solution(int[] X, int[] Y, string colors) {
// write your code in C# 6.0 with .NET 4.5 (Mono)
}
}
using System;
// you can also use other imports, for example:
// using System.Collections.Generic;
// you can write to stdout for debugging purposes, e.g.
// Console.WriteLine("this is a debug message");
using nam
class Solution {
public int solution(int[] X, int[] Y, string colors) {
// write your code in C# 6.0 with .NET 4.5 (Mono)
}
}
using System;
// you can also use other imports, for example:
// using System.Collections.Generic;
// you can write to stdout for debugging purposes, e.g.
// Console.WriteLine("this is a debug message");
namespace challenge{
class Solution {
public int solution(int[] X, int[] Y, string colors) {
// write your code in C# 6.0 with .NET 4.5 (Mono)
}
}
}
using System;
// you can also use other imports, for example:
// using System.Collections.Generic;
// you can write to stdout for debugging purposes, e.g.
// Console.WriteLine("this is a debug message");
namespace challenge{
class Solution {
public int solution(int[] X, int[] Y, string colors) {
// write your code in C# 6.0 with .NET 4.5 (Mono)
}
}
internal class Finder
{
public List<Point> Points = new List<Point>();// { get; set; }
public int minDistanceFromOrigin = 0;
List<double> distances = new List<double>();
public Finder(int[] x,int[] y,string colors)
{
char[] c = colors.ToCharArray();
for(int i = 0; i < x.Length; i++)
{
Points.Add(new Point(x[i], y[i], c[i]));
}
}
public int findEvenPointsCircle()
{
int res = 0;
allPointsDistances();
List<double> uniqueDistances = findUnqueDistances(distances);
List<Circle> circles = createCirclesWithPoints(uniqueDistances);
foreach (Circle c in circles)
{
if (c.checkForEvenNumberOfRedAndGreenPoints())
{
res= c.numberOfPointsInside();
}
}
return res;
}
public List<Circle> createCirclesWithPoints(List<double> uniqueDistances)
{
List<Circle> circles = new List<Circle>();
foreach (double dis in uniqueDistances)
{
Point ps = Points.Find(p => p.distanceFromOrigin == dis);
Circle c = new Circle(ps);
c.calculateRadiusFormOrgin();
c.pointsInsideCircle(Points);
c.countGreenPoints();
c.countRedPoints();
circles.Add(c);
}
return circles;
}
private List<double> findUnqueDistances(List<double> DistancesTemp)
{
double d = 0;
//list<double> dis=distances.OrderByDescending(d).ThenBy(d => d).ToList();
DistancesTemp.Sort();
List<double> unqueDistances= new List<double> ();
foreach (double distance in DistancesTemp)
{
if (distance != d)
unqueDistances.Add(distance);
d = distance;
}
return unqueDistances;
}
public double findMinDistances(List<double> distances)
{
return distances.Min();
}
private void allPointsDistances()
{
foreach (Point point in Points)
{
distances.Add(point.DistanceFromOrigin);
}
}
}
}
using System;
// you can also use other imports, for example:
// using System.Collections.Generic;
// you can write to stdout for debugging purposes, e.g.
// Console.WriteLine("this is a debug message");
namespace challenge{
class Solution {
public int solution(int[] X, int[] Y, string colors) {
// write your code in C# 6.0 with .NET 4.5 (Mono)
}
}
internal class Finder
{
public List<Point> Points = new List<Point>();// { get; set; }
public int minDistanceFromOrigin = 0;
List<double> distances = new List<double>();
public Finder(int[] x,int[] y,string colors)
{
char[] c = colors.ToCharArray();
for(int i = 0; i < x.Length; i++)
{
Points.Add(new Point(x[i], y[i], c[i]));
}
}
public int findEvenPointsCircle()
{
int res = 0;
allPointsDistances();
List<double> uniqueDistances = findUnqueDistances(distances);
List<Circle> circles = createCirclesWithPoints(uniqueDistances);
foreach (Circle c in circles)
{
if (c.checkForEvenNumberOfRedAndGreenPoints())
{
res= c.numberOfPointsInside();
}
}
return res;
}
public List<Circle> createCirclesWithPoints(List<double> uniqueDistances)
{
List<Circle> circles = new List<Circle>();
foreach (double dis in uniqueDistances)
{
Point ps = Points.Find(p => p.distanceFromOrigin == dis);
Circle c = new Circle(ps);
c.calculateRadiusFormOrgin();
c.pointsInsideCircle(Points);
c.countGreenPoints();
c.countRedPoints();
circles.Add(c);
}
return circles;
}
private List<double> findUnqueDistances(List<double> DistancesTemp)
{
double d = 0;
//list<double> dis=distances.OrderByDescending(d).ThenBy(d => d).ToList();
DistancesTemp.Sort();
List<double> unqueDistances= new List<double> ();
foreach (double distance in DistancesTemp)
{
if (distance != d)
unqueDistances.Add(distance);
d = distance;
}
return unqueDistances;
}
public double findMinDistances(List<double> distances)
{
return distances.Min();
}
private void allPointsDistances()
{
foreach (Point point in Points)
{
distances.Add(point.DistanceFromOrigin);
}
}
}
internal class Circle
{
private Point point;
private double radius;
private List<Point> pointsInsideThisCircle =new List<Point>();
private int numberOfGreenPoints;
private int numberOfRedPoints;
public Circle(Point point)
{
this.point = point;
}
public Double calculateRadiusFormOrgin()
{
radius= Math.Sqrt((point.x * point.x) + (point.y * point.y));
return radius;
}
//point checker
private bool checkPointInsideCircle(Point point)
{
return point.DistanceFromOrigin <= radius;
}
public List<Point> pointsInsideCircle(List<Point> points)
{
foreach(Point point in points)
{
if (checkPointInsideCircle(point))
{
pointsInsideThisCircle.Add(point);
}
}
return pointsInsideThisCircle;
}
public int countGreenPoints()
{
int count = 0;
foreach(Point p in pointsInsideThisCircle)
{
if (p.Color == 'G')
{
count++;
}
}
numberOfGreenPoints = count;
return count;
}
public int countRedPoints()
{
int count= 0;
foreach(Point p in pointsInsideThisCircle)
{
if(p.Color == 'R')
{
count++;
}
}
numberOfRedPoints = count;
return count;
}
public bool checkForEvenNumberOfRedAndGreenPoints()
{
return numberOfRedPoints == numberOfGreenPoints;
}
public int numberOfPointsInside()
{
return pointsInsideThisCircle.Count;
}
}
internal class Point
{
public int x;
public int y;
private char color;
public double distanceFromOrigin;
public Point(int x,int y,char color)
{
this.x = x;
this.y = y;
this.color = color;
}
public char Color
{
get { return color; }
}
public double DistanceFromOrigin
{
get {
distanceFromOrigin = calculateRadiusFormOrgin(x, y);
return distanceFromOrigin;
}
}
private Double calculateRadiusFormOrgin(int x, int y)
{
distanceFromOrigin = Math.Sqrt((x * x) + (y * y));
return distanceFromOrigin;
}
}
}
using System;
// you can also use other imports, for example:
// using System.Collections.Generic;
// you can write to stdout for debugging purposes, e.g.
// Console.WriteLine("this is a debug message");
namespace challenge{
class Solution {
public int solution(int[] X, int[] Y, string colors) {
// write your code in C# 6.0 with .NET 4.5 (Mono)
}
}
internal class Finder
{
public List<Point> Points = new List<Point>();// { get; set; }
public int minDistanceFromOrigin = 0;
List<double> distances = new List<double>();
public Finder(int[] x,int[] y,string colors)
{
char[] c = colors.ToCharArray();
for(int i = 0; i < x.Length; i++)
{
Points.Add(new Point(x[i], y[i], c[i]));
}
}
public int findEvenPointsCircle()
{
int res = 0;
allPointsDistances();
List<double> uniqueDistances = findUnqueDistances(distances);
List<Circle> circles = createCirclesWithPoints(uniqueDistances);
foreach (Circle c in circles)
{
if (c.checkForEvenNumberOfRedAndGreenPoints())
{
res= c.numberOfPointsInside();
}
}
return res;
}
public List<Circle> createCirclesWithPoints(List<double> uniqueDistances)
{
List<Circle> circles = new List<Circle>();
foreach (double dis in uniqueDistances)
{
Point ps = Points.Find(p => p.distanceFromOrigin == dis);
Circle c = new Circle(ps);
c.calculateRadiusFormOrgin();
c.pointsInsideCircle(Points);
c.countGreenPoints();
c.countRedPoints();
circles.Add(c);
}
return circles;
}
private List<double> findUnqueDistances(List<double> DistancesTemp)
{
double d = 0;
//list<double> dis=distances.OrderByDescending(d).ThenBy(d => d).ToList();
DistancesTemp.Sort();
List<double> unqueDistances= new List<double> ();
foreach (double distance in DistancesTemp)
{
if (distance != d)
unqueDistances.Add(distance);
d = distance;
}
return unqueDistances;
}
public double findMinDistances(List<double> distances)
{
return distances.Min();
}
private void allPointsDistances()
{
foreach (Point point in Points)
{
distances.Add(point.DistanceFromOrigin);
}
}
}
}
using System;
// you can also use other imports, for example:
// using System.Collections.Generic;
// you can write to stdout for debugging purposes, e.g.
// Console.WriteLine("this is a debug message");
namespace challenge{
class Solution {
public int solution(int[] X, int[] Y, string colors) {
// write your code in C# 6.0 with .NET 4.5 (Mono)
}
}
internal class Finder
{
public List<Point> Points = new List<Point>();// { get; set; }
public int minDistanceFromOrigin = 0;
List<double> distances = new List<double>();
public Finder(int[] x,int[] y,string colors)
{
char[] c = colors.ToCharArray();
for(int i = 0; i < x.Length; i++)
{
Points.Add(new Point(x[i], y[i], c[i]));
}
}
public int findEvenPointsCircle()
{
int res = 0;
allPointsDistances();
List<double> uniqueDistances = findUnqueDistancesdistances);
List<Circle> circles = createCirclesWithPoints(uniqueDistances);
foreach (Circle c in circles)
{
if (c.checkForEvenNumberOfRedAndGreenPoints())
{
res= c.numberOfPointsInside();
}
}
return res;
}
public List<Circle> createCirclesWithPoints(List<double> uniqueDistances)
{
List<Circle> circles = new List<Circle>();
foreach (double dis in uniqueDistances)
{
Point ps = Points.Find(p => p.distanceFromOrigin == dis);
Circle c = new Circle(ps);
c.calculateRadiusFormOrgin();
c.pointsInsideCircle(Points);
c.countGreenPoints();
c.countRedPoints();
circles.Add(c);
}
return circles;
}
private List<double> findUnqueDistances(List<double> DistancesTemp)
{
double d = 0;
//list<double> dis=distances.OrderByDescending(d).ThenBy(d => d).ToList();
DistancesTemp.Sort();
List<double> unqueDistances= new List<double> ();
foreach (double distance in DistancesTemp)
{
if (distance != d)
unqueDistances.Add(distance);
d = distance;
}
return unqueDistances;
}
public double findMinDistances(List<double> distances)
{
return distances.Min();
}
private void allPointsDistances()
{
foreach (Point point in Points)
{
distances.Add(point.DistanceFromOrigin);
}
}
}
}
using System;
// you can also use other imports, for example:
// using System.Collections.Generic;
// you can write to stdout for debugging purposes, e.g.
// Console.WriteLine("this is a debug message");
namespace challenge{
class Solution {
public int solution(int[] X, int[] Y, string colors) {
// write your code in C# 6.0 with .NET 4.5 (Mono)
}
}
internal class Finder
{
public List<Point> Points = new List<Point>();// { get; set; }
public int minDistanceFromOrigin = 0;
List<double> distances = new List<double>();
public Finder(int[] x,int[] y,string colors)
{
char[] c = colors.ToCharArray();
for(int i = 0; i < x.Length; i++)
{
Points.Add(new Point(x[i], y[i], c[i]));
}
}
public int findEvenPointsCircle()
{
int res = 0;
allPointsDistances();
List<double> uniqueDistances = findUnqueDistancesdistances);
List<Circle> circles = createCirclesWithPo(uniqueDistances);
foreach (Circle c in circles)
{
if (c.checkForEvenNumberOfRedAndGreenPoints())
{
res= c.numberOfPointsInside();
}
}
return res;
}
public List<Circle> createCirclesWithPoints(List<double> uniqueDistances)
{
List<Circle> circles = new List<Circle>();
foreach (double dis in uniqueDistances)
{
Point ps = Points.Find(p => p.distanceFromOrigin == dis);
Circle c = new Circle(ps);
c.calculateRadiusFormOrgin();
c.pointsInsideCircle(Points);
c.countGreenPoints();
c.countRedPoints();
circles.Add(c);
}
return circles;
}
private List<double> findUnqueDistances(List<double> DistancesTemp)
{
double d = 0;
//list<double> dis=distances.OrderByDescending(d).ThenBy(d => d).ToList();
DistancesTemp.Sort();
List<double> unqueDistances= new List<double> ();
foreach (double distance in DistancesTemp)
{
if (distance != d)
unqueDistances.Add(distance);
d = distance;
}
return unqueDistances;
}
public double findMinDistances(List<double> distances)
{
return distances.Min();
}
private void allPointsDistances()
{
foreach (Point point in Points)
{
distances.Add(point.DistanceFromOrigin);
}
}
}
}
using System;
// you can also use other imports, for example:
// using System.Collections.Generic;
// you can write to stdout for debugging purposes, e.g.
// Console.WriteLine("this is a debug message");
namespace challenge{
class Solution {
public int solution(int[] X, int[] Y, string colors) {
// write your code in C# 6.0 with .NET 4.5 (Mono)
}
}
internal class Finder
{
public List<Point> Points = new List<Point>();// { get; set; }
public int minDistanceFromOrigin = 0;
List<double> distances = new List<double>();
public Finder(int[] x,int[] y,string colors)
{
char[] c = colors.ToCharArray();
for(int i = 0; i < x.Length; i++)
{
Points.Add(new Point(x[i], y[i], c[i]));
}
}
public int findEvenPointsCircle()
{
int res = 0;
allPointsDistances();
List<double> uniqueDistances = findUnqueDistancesdistances);
List<Circle> circles = createCirclesWithPo(uniqueDistances;
foreach (Circle c in circles)
{
if (c.checkForEvenNumberOfRedAndGreenPoints())
{
res= c.numberOfPointsInside();
}
}
return res;
}
public List<Circle> createCirclesWithPoints(List<double> uniqueDistances)
{
List<Circle> circles = new List<Circle>();
foreach (double dis in uniqueDistances)
{
Point ps = Points.Find(p => p.distanceFromOrigin == dis);
Circle c = new Circle(ps);
c.calculateRadiusFormOrgin();
c.pointsInsideCircle(Points);
c.countGreenPoints();
c.countRedPoints();
circles.Add(c);
}
return circles;
}
private List<double> findUnqueDistances(List<double> DistancesTemp)
{
double d = 0;
//list<double> dis=distances.OrderByDescending(d).ThenBy(d => d).ToList();
DistancesTemp.Sort();
List<double> unqueDistances= new List<double> ();
foreach (double distance in DistancesTemp)
{
if (distance != d)
unqueDistances.Add(distance);
d = distance;
}
return unqueDistances;
}
public double findMinDistances(List<double> distances)
{
return distances.Min();
}
private void allPointsDistances()
{
foreach (Point point in Points)
{
distances.Add(point.DistanceFromOrigin);
}
}
}
}
using System;
// you can also use other imports, for example:
// using System.Collections.Generic;
// you can write to stdout for debugging purposes, e.g.
// Console.WriteLine("this is a debug message");
namespace challenge{
class Solution {
public int solution(int[] X, int[] Y, string colors) {
// write your code in C# 6.0 with .NET 4.5 (Mono)
}
}
internal class Finder
{
public List<Point> Points = new List<Point>();// { get; set; }
public int minDistanceFromOrigin = 0;
List<double> distances = new List<double>();
public Finder(int[] x,int[] y,string colors)
{
char[] c = colors.ToCharArray();
for(int i = 0; i < x.Length; i++)
{
Points.Add(new Point(x[i], y[i], c[i]));
}
}
public int findEvenPointsCircle()
{
int res = 0;
allPointsDistances();
List<double> uniqueDistances = findUnqueDistances(distances);
List<Circle> circles = createCirclesWithPoints(uniqueDistances);
foreach (Circle c in circles)
{
if (c.checkForEvenNumberOfRedAndGreenPoints())
{
res= c.numberOfPointsInside();
}
}
return res;
}
public List<Circle> createCirclesWithPoints(List<double> uniqueDistances)
{
List<Circle> circles = new List<Circle>();
foreach (double dis in uniqueDistances)
{
Point ps = Points.Find(p => p.distanceFromOrigin == dis);
Circle c = new Circle(ps);
c.calculateRadiusFormOrgin();
c.pointsInsideCircle(Points);
c.countGreenPoints();
c.countRedPoints();
circles.Add(c);
}
return circles;
}
private List<double> findUnqueDistances(List<double> DistancesTemp)
{
double d = 0;
//list<double> dis=distances.OrderByDescending(d).ThenBy(d => d).ToList();
DistancesTemp.Sort();
List<double> unqueDistances= new List<double> ();
foreach (double distance in DistancesTemp)
{
if (distance != d)
unqueDistances.Add(distance);
d = distance;
}
return unqueDistances;
}
public double findMinDistances(List<double> distances)
{
return distances.Min();
}
private void allPointsDistances()
{
foreach (Point point in Points)
{
distances.Add(point.DistanceFromOrigin);
}
}
}
}
using System;
// you can also use other imports, for example:
// using System.Collections.Generic;
// you can write to stdout for debugging purposes, e.g.
// Console.WriteLine("this is a debug message");
namespace challenge{
class Solution {
public int solution(int[] X, int[] Y, string colors) {
// write your code in C# 6.0 with .NET 4.5 (Mono)
}
}
internal class Finder
{
public List<Point> Points = new List<Point>();// { get; set; }
public int minDistanceFromOrigin = 0;
List<double> distances = new List<double>();
public Finder(int[] x,int[] y,string colors)
{
char[] c = colors.ToCharArray();
for(int i = 0; i < x.Length; i++)
{
Points.Add(new Point(x[i], y[i], c[i]));
}
}
public int findEvenPointsCircle()
{
int res = 0;
allPointsDistances();
List<double> uniqueDistances = findUnqueDistance(distances)
List<Circle> circles = createCirclesWithPoints(uniqueDistances);
foreach (Circle c in circles)
{
if (c.checkForEvenNumberOfRedAndGreenPoints())
{
res= c.numberOfPointsInside();
}
}
return res;
}
public List<Circle> createCirclesWithPoints(List<double> uniqueDistances)
{
List<Circle> circles = new List<Circle>();
foreach (double dis in uniqueDistances)
{
Point ps = Points.Find(p => p.distanceFromOrigin == dis);
Circle c = new Circle(ps);
c.calculateRadiusFormOrgin();
c.pointsInsideCircle(Points);
c.countGreenPoints();
c.countRedPoints();
circles.Add(c);
}
return circles;
}
private List<double> findUnqueDistances(List<double> DistancesTemp)
{
double d = 0;
//list<double> dis=distances.OrderByDescending(d).ThenBy(d => d).ToList();
DistancesTemp.Sort();
List<double> unqueDistances= new List<double> ();
foreach (double distance in DistancesTemp)
{
if (distance != d)
unqueDistances.Add(distance);
d = distance;
}
return unqueDistances;
}
public double findMinDistances(List<double> distances)
{
return distances.Min();
}
private void allPointsDistances()
{
foreach (Point point in Points)
{
distances.Add(point.DistanceFromOrigin);
}
}
}
}
using System;
// you can also use other imports, for example:
// using System.Collections.Generic;
// you can write to stdout for debugging purposes, e.g.
// Console.WriteLine("this is a debug message");
namespace challenge{
class Solution {
public int solution(int[] X, int[] Y, string colors) {
// write your code in C# 6.0 with .NET 4.5 (Mono)
}
}
internal class Finder
{
public List<Point> Points = new List<Point>();// { get; set; }
public int minDistanceFromOrigin = 0;
List<double> distances = new List<double>();
public Finder(int[] x,int[] y,string colors)
{
char[] c = colors.ToCharArray();
for(int i = 0; i < x.Length; i++)
{
Points.Add(new Point(x[i], y[i], c[i]));
}
}
public int findEvenPointsCircle()
{
int res = 0;
allPointsDistances();
List<double> uniqueDistances = findUnqueDistances(distances);
List<Circle> circles = createCirclesWithPoints(uniqueDistances);
foreach (Circle c in circles)
{
if (c.checkForEvenNumberOfRedAndGreenPoints())
{
res= c.numberOfPointsInside();
}
}
return res;
}
public List<Circle> createCirclesWithPoints(List<double> uniqueDistances)
{
List<Circle> circles = new List<Circle>();
foreach (double dis in uniqueDistances)
{
Point ps = Points.Find(p => p.distanceFromOrigin == dis);
Circle c = new Circle(ps);
c.calculateRadiusFormOrgin();
c.pointsInsideCircle(Points);
c.countGreenPoints();
c.countRedPoints();
circles.Add(c);
}
return circles;
}
private List<double> findUnqueDistances(List<double> DistancesTemp)
{
double d = 0;
//list<double> dis=distances.OrderByDescending(d).ThenBy(d => d).ToList();
DistancesTemp.Sort();
List<double> unqueDistances= new List<double> ();
foreach (double distance in DistancesTemp)
{
if (distance != d)
unqueDistances.Add(distance);
d = distance;
}
return unqueDistances;
}
public double findMinDistances(List<double> distances)
{
return distances.Min();
}
private void allPointsDistances()
{
foreach (Point point in Points)
{
distances.Add(point.DistanceFromOrigin);
}
}
}
}
using System;
// you can also use other imports, for example:
// using System.Collections.Generic;
// you can write to stdout for debugging purposes, e.g.
// Console.WriteLine("this is a debug message");
namespace challenge{
class Solution {
public int solution(int[] X, int[] Y, string colors) {
// write your code in C# 6.0 with .NET 4.5 (Mono)
}
}
internal class Finder
{
public List<Point> Points = new List<Point>();// { get; set; }
public int minDistanceFromOrigin = 0;
List<double> distances = new List<double>();
public Finder(int[] x,int[] y,string colors)
{
char[] c = colors.ToCharArray();
for(int i = 0; i < x.Length; i++)
{
Points.Add(new Point(x[i], y[i], c[i]));
}
}
public int findEvenPointsCircle()
{
int res = 0;
allPointsDistances();
List<double> uniqueDistances = findUnqueDistances(distances);
List<Circle> circles = createCirclesWithPoints(uniqueDistances);
foreach (Circle c in circles)
{
if (c.checkForEvenNumberOfRedAndGreenPoints())
{
res= c.numberOfPointsInside();
}
}
return res;
}
public List<Circle> createCirclesWithPoints(List<double> uniqueDistances)
{
List<Circle> circles = new List<Circle>();
foreach (double dis in uniqueDistances)
{
Point ps = Points.Find(p => p.distanceFromOrigin == dis);
Circle c = new Circle(ps);
c.calculateRadiusFormOrgin();
c.pointsInsideCircle(Points);
c.countGreenPoints();
c.countRedPoints();
circles.Add(c);
}
return circles;
}
private List<double> findUnqueDistances(List<double> DistancesTemp)
{
double d = 0;
//list<double> dis=distances.OrderByDescending(d).ThenBy(d => d).ToList();
DistancesTemp.Sort();
List<double> unqueDistances= new List<double> ();
foreach (double distance in DistancesTemp)
{
if (distance != d)
unqueDistances.Add(distance);
d = distance;
}
return unqueDistances;
}
public double findMinDistances(List<double> distances)
{
return distances.Min();
}
private void allPointsDistances()
{
foreach (Point point in Points)
{
distances.Add(point.DistanceFromOrigin);
}
}
}
}
using System;
// you can also use other imports, for example:
// using System.Collections.Generic;
// you can write to stdout for debugging purposes, e.g.
// Console.WriteLine("this is a debug message");
namespace challenge{
class Solution {
public int solution(int[] X, int[] Y, string colors) {
// write your code in C# 6.0 with .NET 4.5 (Mono)
}
}
internal class Circle
{
private Point point;
private double radius;
private List<Point> pointsInsideThisCircle =new List<Point>();
private int numberOfGreenPoints;
private int numberOfRedPoints;
public Circle(Point point)
{
this.point = point;
}
public Double calculateRadiusFormOrgin()
{
radius= Math.Sqrt((point.x * point.x) + (point.y * point.y));
return radius;
}
//point checker
private bool checkPointInsideCircle(Point point)
{
return point.DistanceFromOrigin <= radius;
}
public List<Point> pointsInsideCircle(List<Point> points)
{
foreach(Point point in points)
{
if (checkPointInsideCircle(point))
{
pointsInsideThisCircle.Add(point);
}
}
return pointsInsideThisCircle;
}
public int countGreenPoints()
{
int count = 0;
foreach(Point p in pointsInsideThisCircle)
{
if (p.Color == 'G')
{
count++;
}
}
numberOfGreenPoints = count;
return count;
}
public int countRedPoints()
{
int count= 0;
foreach(Point p in pointsInsideThisCircle)
{
if(p.Color == 'R')
{
count++;
}
}
numberOfRedPoints = count;
return count;
}
public bool checkForEvenNumberOfRedAndGreenPoints()
{
return numberOfRedPoints == numberOfGreenPoints;
}
public int numberOfPointsInside()
{
return pointsInsideThisCircle.Count;
}
}
internal class Point
{
public int x;
public int y;
private char color;
public double distanceFromOrigin;
public Point(int x,int y,char color)
{
this.x = x;
this.y = y;
this.color = color;
}
public char Color
{
get { return color; }
}
public double DistanceFromOrigin
{
get {
distanceFromOrigin = calculateRadiusFormOrgin(x, y);
return distanceFromOrigin;
}
}
private Double calculateRadiusFormOrgin(int x, int y)
{
distanceFromOrigin = Math.Sqrt((x * x) + (y * y));
return distanceFromOrigin;
}
}
internal class Finder
{
public List<Point> Points = new List<Point>();// { get; set; }
public int minDistanceFromOrigin = 0;
List<double> distances = new List<double>();
public Finder(int[] x,int[] y,string colors)
{
char[] c = colors.ToCharArray();
for(int i = 0; i < x.Length; i++)
{
Points.Add(new Point(x[i], y[i], c[i]));
}
}
public int findEvenPointsCircle()
{
int res = 0;
allPointsDistances();
List<double> uniqueDistances = findUnqueDistances(distances);
List<Circle> circles = createCirclesWithPoints(uniqueDistances);
foreach (Circle c in circles)
{
if (c.checkForEvenNumberOfRedAndGreenPoints())
{
res= c.numberOfPointsInside();
}
}
return res;
}
public List<Circle> createCirclesWithPoints(List<double> uniqueDistances)
{
List<Circle> circles = new List<Circle>();
foreach (double dis in uniqueDistances)
{
Point ps = Points.Find(p => p.distanceFromOrigin == dis);
Circle c = new Circle(ps);
c.calculateRadiusFormOrgin();
c.pointsInsideCircle(Points);
c.countGreenPoints();
c.countRedPoints();
circles.Add(c);
}
return circles;
}
private List<double> findUnqueDistances(List<double> DistancesTemp)
{
double d = 0;
//list<double> dis=distances.OrderByDescending(d).ThenBy(d => d).ToList();
DistancesTemp.Sort();
List<double> unqueDistances= new List<double> ();
foreach (double distance in DistancesTemp)
{
if (distance != d)
unqueDistances.Add(distance);
d = distance;
}
return unqueDistances;
}
public double findMinDistances(List<double> distances)
{
return distances.Min();
}
private void allPointsDistances()
{
foreach (Point point in Points)
{
distances.Add(point.DistanceFromOrigin);
}
}
}
}
using System;
// you can also use other imports, for example:
// using System.Collections.Generic;
// you can write to stdout for debugging purposes, e.g.
// Console.WriteLine("this is a debug message");
namespace challenge{
class Solution {
public int solution(int[] X, int[] Y, string colors) {
// write your code in C# 6.0 with .NET 4.5 (Mono)
}
}
internal class Circle
{
private Point point;
private double radius;
private List<Point> pointsInsideThisCircle =new List<Point>();
private int numberOfGreenPoints;
private int numberOfRedPoints;
public Circle(Point point)
{
this.point = point;
}
public Double calculateRadiusFormOrgin()
{
radius= Math.Sqrt((point.x * point.x) + (point.y * point.y));
return radius;
}
//point checker
private bool checkPointInsideCircle(Point point)
{
return point.DistanceFromOrigin <= radius;
}
public List<Point> pointsInsideCircle(List<Point> points)
{
foreach(Point point in points)
{
if (checkPointInsideCircle(point))
{
pointsInsideThisCircle.Add(point);
}
}
return pointsInsideThisCircle;
}
public int countGreenPoints()
{
int count = 0;
foreach(Point p in pointsInsideThisCircle)
{
if (p.Color == 'G')
{
count++;
}
}
numberOfGreenPoints = count;
return count;
}
public int countRedPoints()
{
int count= 0;
foreach(Point p in pointsInsideThisCircle)
{
if(p.Color == 'R')
{
count++;
}
}
numberOfRedPoints = count;
return count;
}
public bool checkForEvenNumberOfRedAndGreenPoints()
{
return numberOfRedPoints == numberOfGreenPoints;
}
public int numberOfPointsInside()
{
return pointsInsideThisCircle.Count;
}
}
internal class Point
{
public int x;
public int y;
private char color;
public double distanceFromOrigin;
public Point(int x,int y,char color)
{
this.x = x;
this.y = y;
this.color = color;
}
public char Color
{
get { return color; }
}
public double DistanceFromOrigin
{
get {
distanceFromOrigin = calculateRadiusFormOrgin(x, y);
return distanceFromOrigin;
}
}
private Double calculateRadiusFormOrgin(int x, int y)
{
distanceFromOrigin = Math.Sqrt((x * x) + (y * y));
return distanceFromOrigin;
}
}
internal class Finder
{
public List<Point> Points = new List<Point>();// { get; set; }
public int minDistanceFromOrigin = 0;
List<double> distances = new List<double>();
public Finder(int[] x,int[] y,string colors)
{
char[] c = colors.ToCharArray();
for(int i = 0; i < x.Length; i++)
{
Points.Add(new Point(x[i], y[i], c[i]));
}
}
public int findEvenPointsCircle()
{
int res = 0;
allPointsDistances();
List<double> uniqueDistances = findUnqueDistances(distances);
List<Circle> circles = createCirclesWithPoints(uniqueDistances);
foreach (Circle c in circles)
{
if (c.checkForEvenNumberOfRedAndGreenPoints())
{
res= c.numberOfPointsInside();
}
}
return res;
}
public List<Circle> createCirclesWithPoints(List<double> uniqueDistances)
{
List<Circle> circles = new List<Circle>();
foreach (double dis in uniqueDistances)
{
Point ps = Points.Find(p => p.distanceFromOrigin == dis);
Circle c = new Circle(ps);
c.calculateRadiusFormOrgin();
c.pointsInsideCircle(Points);
c.countGreenPoints();
c.countRedPoints();
circles.Add(c);
}
return circles;
}
private List<double> findUnqueDistances(List<double> DistancesTemp)
{
double d = 0;
//list<double> dis=distances.OrderByDescending(d).ThenBy(d => d).ToList();
DistancesTemp.Sort();
List<double> unqueDistances= new List<double> ();
foreach (double distance in DistancesTemp)
{
if (distance != d)
unqueDistances.Add(distance);
d = distance;
}
return unqueDistances;
}
public double findMinDistances(List<double> distances)
{
return distances.Min();
}
private void allPointsDistances()
{
foreach (Point point in Points)
{
distances.Add(point.DistanceFromOrigin);
}
}
}
}
using System;
using System.Collections.Generic;
// you can also use other imports, for example:
// using System.Collections.Generic;
// you can write to stdout for debugging purposes, e.g.
// Console.WriteLine("this is a debug message");
namespace challenge{
class Solution {
public int solution(int[] X, int[] Y, string colors) {
// write your code in C# 6.0 with .NET 4.5 (Mono)
}
}
internal class Circle
{
private Point point;
private double radius;
private List<Point> pointsInsideThisCircle =new List<Point>();
private int numberOfGreenPoints;
private int numberOfRedPoints;
public Circle(Point point)
{
this.point = point;
}
public Double calculateRadiusFormOrgin()
{
radius= Math.Sqrt((point.x * point.x) + (point.y * point.y));
return radius;
}
//point checker
private bool checkPointInsideCircle(Point point)
{
return point.DistanceFromOrigin <= radius;
}
public List<Point> pointsInsideCircle(List<Point> points)
{
foreach(Point point in points)
{
if (checkPointInsideCircle(point))
{
pointsInsideThisCircle.Add(point);
}
}
return pointsInsideThisCircle;
}
public int countGreenPoints()
{
int count = 0;
foreach(Point p in pointsInsideThisCircle)
{
if (p.Color == 'G')
{
count++;
}
}
numberOfGreenPoints = count;
return count;
}
public int countRedPoints()
{
int count= 0;
foreach(Point p in pointsInsideThisCircle)
{
if(p.Color == 'R')
{
count++;
}
}
numberOfRedPoints = count;
return count;
}
public bool checkForEvenNumberOfRedAndGreenPoints()
{
return numberOfRedPoints == numberOfGreenPoints;
}
public int numberOfPointsInside()
{
return pointsInsideThisCircle.Count;
}
}
internal class Point
{
public int x;
public int y;
private char color;
public double distanceFromOrigin;
public Point(int x,int y,char color)
{
this.x = x;
this.y = y;
this.color = color;
}
public char Color
{
get { return color; }
}
public double DistanceFromOrigin
{
get {
distanceFromOrigin = calculateRadiusFormOrgin(x, y);
return distanceFromOrigin;
}
}
private Double calculateRadiusFormOrgin(int x, int y)
{
distanceFromOrigin = Math.Sqrt((x * x) + (y * y));
return distanceFromOrigin;
}
}
internal class Finder
{
public List<Point> Points = new List<Point>();// { get; set; }
public int minDistanceFromOrigin = 0;
List<double> distances = new List<double>();
public Finder(int[] x,int[] y,string colors)
{
char[] c = colors.ToCharArray();
for(int i = 0; i < x.Length; i++)
{
Points.Add(new Point(x[i], y[i], c[i]));
}
}
public int findEvenPointsCircle()
{
int res = 0;
allPointsDistances();
List<double> uniqueDistances = findUnqueDistances(distances);
List<Circle> circles = createCirclesWithPoints(uniqueDistances);
foreach (Circle c in circles)
{
if (c.checkForEvenNumberOfRedAndGreenPoints())
{
res= c.numberOfPointsInside();
}
}
return res;
}
public List<Circle> createCirclesWithPoints(List<double> uniqueDistances)
{
List<Circle> circles = new List<Circle>();
foreach (double dis in uniqueDistances)
{
Point ps = Points.Find(p => p.distanceFromOrigin == dis);
Circle c = new Circle(ps);
c.calculateRadiusFormOrgin();
c.pointsInsideCircle(Points);
c.countGreenPoints();
c.countRedPoints();
circles.Add(c);
}
return circles;
}
private List<double> findUnqueDistances(List<double> DistancesTemp)
{
double d = 0;
//list<double> dis=distances.OrderByDescending(d).ThenBy(d => d).ToList();
DistancesTemp.Sort();
List<double> unqueDistances= new List<double> ();
foreach (double distance in DistancesTemp)
{
if (distance != d)
unqueDistances.Add(distance);
d = distance;
}
return unqueDistances;
}
public double findMinDistances(List<double> distances)
{
return distances.Min();
}
private void allPointsDistances()
{
foreach (Point point in Points)
{
distances.Add(point.DistanceFromOrigin);
}
}
}
}
using System;
using System.Collections.Generic;
// you can also use other imports, for example:
// using System.Collections.Generic;
// you can write to stdout for debugging purposes, e.g.
// Console.WriteLine("this is a debug message");
namespace challenge{
class Solution {
public int solution(int[] X, int[] Y, string colors) {
// write your code in C# 6.0 with .NET 4.5 (Mono)
}
}
internal class Circle
{
private Point point;
private double radius;
private List<Point> pointsInsideThisCircle =new List<Point>();
private int numberOfGreenPoints;
private int numberOfRedPoints;
public Circle(Point point)
{
this.point = point;
}
public Double calculateRadiusFormOrgin()
{
radius= Math.Sqrt((point.x * point.x) + (point.y * point.y));
return radius;
}
//point checker
private bool checkPointInsideCircle(Point point)
{
return point.DistanceFromOrigin <= radius;
}
public List<Point> pointsInsideCircle(List<Point> points)
{
foreach(Point point in points)
{
if (checkPointInsideCircle(point))
{
pointsInsideThisCircle.Add(point);
}
}
return pointsInsideThisCircle;
}
public int countGreenPoints()
{
int count = 0;
foreach(Point p in pointsInsideThisCircle)
{
if (p.Color == 'G')
{
count++;
}
}
numberOfGreenPoints = count;
return count;
}
public int countRedPoints()
{
int count= 0;
foreach(Point p in pointsInsideThisCircle)
{
if(p.Color == 'R')
{
count++;
}
}
numberOfRedPoints = count;
return count;
}
public bool checkForEvenNumberOfRedAndGreenPoints()
{
return numberOfRedPoints == numberOfGreenPoints;
}
public int numberOfPointsInside()
{
return pointsInsideThisCircle.Count;
}
}
internal class Point
{
public int x;
public int y;
private char color;
public double distanceFromOrigin;
public Point(int x,int y,char color)
{
this.x = x;
this.y = y;
this.color = color;
}
public char Color
{
get { return color; }
}
public double DistanceFromOrigin
{
get {
distanceFromOrigin = calculateRadiusFormOrgin(x, y);
return distanceFromOrigin;
}
}
private Double calculateRadiusFormOrgin(int x, int y)
{
distanceFromOrigin = Math.Sqrt((x * x) + (y * y));
return distanceFromOrigin;
}
}
internal class Finder
{
public List<Point> Points = new List<Point>();// { get; set; }
public int minDistanceFromOrigin = 0;
List<double> distances = new List<double>();
public Finder(int[] x,int[] y,string colors)
{
char[] c = colors.ToCharArray();
for(int i = 0; i < x.Length; i++)
{
Points.Add(new Point(x[i], y[i], c[i]));
}
}
public int findEvenPointsCircle()
{
int res = 0;
allPointsDistances();
List<double> uniqueDistances = findUnqueDistances(distances);
List<Circle> circles = createCirclesWithPoints(uniqueDistances);
foreach (Circle c in circles)
{
if (c.checkForEvenNumberOfRedAndGreenPoints())
{
res= c.numberOfPointsInside();
}
}
return res;
}
public List<Circle> createCirclesWithPoints(List<double> uniqueDistances)
{
List<Circle> circles = new List<Circle>();
foreach (double dis in uniqueDistances)
{
Point ps = Points.Find(p => p.distanceFromOrigin == dis);
Circle c = new Circle(ps);
c.calculateRadiusFormOrgin();
c.pointsInsideCircle(Points);
c.countGreenPoints();
c.countRedPoints();
circles.Add(c);
}
return circles;
}
private List<double> findUnqueDistances(List<double> DistancesTemp)
{
double d = 0;
//list<double> dis=distances.OrderByDescending(d).ThenBy(d => d).ToList();
DistancesTemp.Sort();
List<double> unqueDistances= new List<double> ();
foreach (double distance in DistancesTemp)
{
if (distance != d)
unqueDistances.Add(distance);
d = distance;
}
return unqueDistances;
}
public double findMinDistances(List<double> distances)
{
return distances.Min();
}
private void allPointsDistances()
{
foreach (Point point in Points)
{
distances.Add(point.DistanceFromOrigin);
}
}
}
}
using System;
using System.Collections.Generic;
using System.
// you can also use other imports, for example:
// using System.Collections.Generic;
// you can write to stdout for debugging purposes, e.g.
// Console.WriteLine("this is a debug message");
namespace challenge{
class Solution {
public int solution(int[] X, int[] Y, string colors) {
// write your code in C# 6.0 with .NET 4.5 (Mono)
}
}
internal class Circle
{
private Point point;
private double radius;
private List<Point> pointsInsideThisCircle =new List<Point>();
private int numberOfGreenPoints;
private int numberOfRedPoints;
public Circle(Point point)
{
this.point = point;
}
public Double calculateRadiusFormOrgin()
{
radius= Math.Sqrt((point.x * point.x) + (point.y * point.y));
return radius;
}
//point checker
private bool checkPointInsideCircle(Point point)
{
return point.DistanceFromOrigin <= radius;
}
public List<Point> pointsInsideCircle(List<Point> points)
{
foreach(Point point in points)
{
if (checkPointInsideCircle(point))
{
pointsInsideThisCircle.Add(point);
}
}
return pointsInsideThisCircle;
}
public int countGreenPoints()
{
int count = 0;
foreach(Point p in pointsInsideThisCircle)
{
if (p.Color == 'G')
{
count++;
}
}
numberOfGreenPoints = count;
return count;
}
public int countRedPoints()
{
int count= 0;
foreach(Point p in pointsInsideThisCircle)
{
if(p.Color == 'R')
{
count++;
}
}
numberOfRedPoints = count;
return count;
}
public bool checkForEvenNumberOfRedAndGreenPoints()
{
return numberOfRedPoints == numberOfGreenPoints;
}
public int numberOfPointsInside()
{
return pointsInsideThisCircle.Count;
}
}
internal class Point
{
public int x;
public int y;
private char color;
public double distanceFromOrigin;
public Point(int x,int y,char color)
{
this.x = x;
this.y = y;
this.color = color;
}
public char Color
{
get { return color; }
}
public double DistanceFromOrigin
{
get {
distanceFromOrigin = calculateRadiusFormOrgin(x, y);
return distanceFromOrigin;
}
}
private Double calculateRadiusFormOrgin(int x, int y)
{
distanceFromOrigin = Math.Sqrt((x * x) + (y * y));
return distanceFromOrigin;
}
}
internal class Finder
{
public List<Point> Points = new List<Point>();// { get; set; }
public int minDistanceFromOrigin = 0;
List<double> distances = new List<double>();
public Finder(int[] x,int[] y,string colors)
{
char[] c = colors.ToCharArray();
for(int i = 0; i < x.Length; i++)
{
Points.Add(new Point(x[i], y[i], c[i]));
}
}
public int findEvenPointsCircle()
{
int res = 0;
allPointsDistances();
List<double> uniqueDistances = findUnqueDistances(distances);
List<Circle> circles = createCirclesWithPoints(uniqueDistances);
foreach (Circle c in circles)
{
if (c.checkForEvenNumberOfRedAndGreenPoints())
{
res= c.numberOfPointsInside();
}
}
return res;
}
public List<Circle> createCirclesWithPoints(List<double> uniqueDistances)
{
List<Circle> circles = new List<Circle>();
foreach (double dis in uniqueDistances)
{
Point ps = Points.Find(p => p.distanceFromOrigin == dis);
Circle c = new Circle(ps);
c.calculateRadiusFormOrgin();
c.pointsInsideCircle(Points);
c.countGreenPoints();
c.countRedPoints();
circles.Add(c);
}
return circles;
}
private List<double> findUnqueDistances(List<double> DistancesTemp)
{
double d = 0;
//list<double> dis=distances.OrderByDescending(d).ThenBy(d => d).ToList();
DistancesTemp.Sort();
List<double> unqueDistances= new List<double> ();
foreach (double distance in DistancesTemp)
{
if (distance != d)
unqueDistances.Add(distance);
d = distance;
}
return unqueDistances;
}
public double findMinDistances(List<double> distances)
{
return distances.Min();
}
private void allPointsDistances()
{
foreach (Point point in Points)
{
distances.Add(point.DistanceFromOrigin);
}
}
}
}
using System;
using System.Collections.Generic;
ng System.
// you can also use other imports, for example:
// using System.Collections.Generic;
// you can write to stdout for debugging purposes, e.g.
// Console.WriteLine("this is a debug message");
namespace challenge{
class Solution {
public int solution(int[] X, int[] Y, string colors) {
// write your code in C# 6.0 with .NET 4.5 (Mono)
}
}
internal class Circle
{
private Point point;
private double radius;
private List<Point> pointsInsideThisCircle =new List<Point>();
private int numberOfGreenPoints;
private int numberOfRedPoints;
public Circle(Point point)
{
this.point = point;
}
public Double calculateRadiusFormOrgin()
{
radius= Math.Sqrt((point.x * point.x) + (point.y * point.y));
return radius;
}
//point checker
private bool checkPointInsideCircle(Point point)
{
return point.DistanceFromOrigin <= radius;
}
public List<Point> pointsInsideCircle(List<Point> points)
{
foreach(Point point in points)
{
if (checkPointInsideCircle(point))
{
pointsInsideThisCircle.Add(point);
}
}
return pointsInsideThisCircle;
}
public int countGreenPoints()
{
int count = 0;
foreach(Point p in pointsInsideThisCircle)
{
if (p.Color == 'G')
{
count++;
}
}
numberOfGreenPoints = count;
return count;
}
public int countRedPoints()
{
int count= 0;
foreach(Point p in pointsInsideThisCircle)
{
if(p.Color == 'R')
{
count++;
}
}
numberOfRedPoints = count;
return count;
}
public bool checkForEvenNumberOfRedAndGreenPoints()
{
return numberOfRedPoints == numberOfGreenPoints;
}
public int numberOfPointsInside()
{
return pointsInsideThisCircle.Count;
}
}
internal class Point
{
public int x;
public int y;
private char color;
public double distanceFromOrigin;
public Point(int x,int y,char color)
{
this.x = x;
this.y = y;
this.color = color;
}
public char Color
{
get { return color; }
}
public double DistanceFromOrigin
{
get {
distanceFromOrigin = calculateRadiusFormOrgin(x, y);
return distanceFromOrigin;
}
}
private Double calculateRadiusFormOrgin(int x, int y)
{
distanceFromOrigin = Math.Sqrt((x * x) + (y * y));
return distanceFromOrigin;
}
}
internal class Finder
{
public List<Point> Points = new List<Point>();// { get; set; }
public int minDistanceFromOrigin = 0;
List<double> distances = new List<double>();
public Finder(int[] x,int[] y,string colors)
{
char[] c = colors.ToCharArray();
for(int i = 0; i < x.Length; i++)
{
Points.Add(new Point(x[i], y[i], c[i]));
}
}
public int findEvenPointsCircle()
{
int res = 0;
allPointsDistances();
List<double> uniqueDistances = findUnqueDistances(distances);
List<Circle> circles = createCirclesWithPoints(uniqueDistances);
foreach (Circle c in circles)
{
if (c.checkForEvenNumberOfRedAndGreenPoints())
{
res= c.numberOfPointsInside();
}
}
return res;
}
public List<Circle> createCirclesWithPoints(List<double> uniqueDistances)
{
List<Circle> circles = new List<Circle>();
foreach (double dis in uniqueDistances)
{
Point ps = Points.Find(p => p.distanceFromOrigin == dis);
Circle c = new Circle(ps);
c.calculateRadiusFormOrgin();
c.pointsInsideCircle(Points);
c.countGreenPoints();
c.countRedPoints();
circles.Add(c);
}
return circles;
}
private List<double> findUnqueDistances(List<double> DistancesTemp)
{
double d = 0;
//list<double> dis=distances.OrderByDescending(d).ThenBy(d => d).ToList();
DistancesTemp.Sort();
List<double> unqueDistances= new List<double> ();
foreach (double distance in DistancesTemp)
{
if (distance != d)
unqueDistances.Add(distance);
d = distance;
}
return unqueDistances;
}
public double findMinDistances(List<double> distances)
{
return distances.Min();
}
private void allPointsDistances()
{
foreach (Point point in Points)
{
distances.Add(point.DistanceFromOrigin);
}
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
// you can also use other imports, for example:
// using System.Collections.Generic;
// you can write to stdout for debugging purposes, e.g.
// Console.WriteLine("this is a debug message");
namespace challenge{
class Solution {
public int solution(int[] X, int[] Y, string colors) {
// write your code in C# 6.0 with .NET 4.5 (Mono)
}
}
internal class Circle
{
private Point point;
private double radius;
private List<Point> pointsInsideThisCircle =new List<Point>();
private int numberOfGreenPoints;
private int numberOfRedPoints;
public Circle(Point point)
{
this.point = point;
}
public Double calculateRadiusFormOrgin()
{
radius= Math.Sqrt((point.x * point.x) + (point.y * point.y));
return radius;
}
//point checker
private bool checkPointInsideCircle(Point point)
{
return point.DistanceFromOrigin <= radius;
}
public List<Point> pointsInsideCircle(List<Point> points)
{
foreach(Point point in points)
{
if (checkPointInsideCircle(point))
{
pointsInsideThisCircle.Add(point);
}
}
return pointsInsideThisCircle;
}
public int countGreenPoints()
{
int count = 0;
foreach(Point p in pointsInsideThisCircle)
{
if (p.Color == 'G')
{
count++;
}
}
numberOfGreenPoints = count;
return count;
}
public int countRedPoints()
{
int count= 0;
foreach(Point p in pointsInsideThisCircle)
{
if(p.Color == 'R')
{
count++;
}
}
numberOfRedPoints = count;
return count;
}
public bool checkForEvenNumberOfRedAndGreenPoints()
{
return numberOfRedPoints == numberOfGreenPoints;
}
public int numberOfPointsInside()
{
return pointsInsideThisCircle.Count;
}
}
internal class Point
{
public int x;
public int y;
private char color;
public double distanceFromOrigin;
public Point(int x,int y,char color)
{
this.x = x;
this.y = y;
this.color = color;
}
public char Color
{
get { return color; }
}
public double DistanceFromOrigin
{
get {
distanceFromOrigin = calculateRadiusFormOrgin(x, y);
return distanceFromOrigin;
}
}
private Double calculateRadiusFormOrgin(int x, int y)
{
distanceFromOrigin = Math.Sqrt((x * x) + (y * y));
return distanceFromOrigin;
}
}
internal class Finder
{
public List<Point> Points = new List<Point>();// { get; set; }
public int minDistanceFromOrigin = 0;
List<double> distances = new List<double>();
public Finder(int[] x,int[] y,string colors)
{
char[] c = colors.ToCharArray();
for(int i = 0; i < x.Length; i++)
{
Points.Add(new Point(x[i], y[i], c[i]));
}
}
public int findEvenPointsCircle()
{
int res = 0;
allPointsDistances();
List<double> uniqueDistances = findUnqueDistances(distances);
List<Circle> circles = createCirclesWithPoints(uniqueDistances);
foreach (Circle c in circles)
{
if (c.checkForEvenNumberOfRedAndGreenPoints())
{
res= c.numberOfPointsInside();
}
}
return res;
}
public List<Circle> createCirclesWithPoints(List<double> uniqueDistances)
{
List<Circle> circles = new List<Circle>();
foreach (double dis in uniqueDistances)
{
Point ps = Points.Find(p => p.distanceFromOrigin == dis);
Circle c = new Circle(ps);
c.calculateRadiusFormOrgin();
c.pointsInsideCircle(Points);
c.countGreenPoints();
c.countRedPoints();
circles.Add(c);
}
return circles;
}
private List<double> findUnqueDistances(List<double> DistancesTemp)
{
double d = 0;
//list<double> dis=distances.OrderByDescending(d).ThenBy(d => d).ToList();
DistancesTemp.Sort();
List<double> unqueDistances= new List<double> ();
foreach (double distance in DistancesTemp)
{
if (distance != d)
unqueDistances.Add(distance);
d = distance;
}
return unqueDistances;
}
public double findMinDistances(List<double> distances)
{
return distances.Min();
}
private void allPointsDistances()
{
foreach (Point point in Points)
{
distances.Add(point.DistanceFromOrigin);
}
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
// you can also use other imports, for example:
// using System.Collections.Generic;
// you can write to stdout for debugging purposes, e.g.
// Console.WriteLine("this is a debug message");
namespace challenge{
class Solution {
public int solution(int[] X, int[] Y, string colors) {
var f=
}
}
internal class Circle
{
private Point point;
private double radius;
private List<Point> pointsInsideThisCircle =new List<Point>();
private int numberOfGreenPoints;
private int numberOfRedPoints;
public Circle(Point point)
{
this.point = point;
}
public Double calculateRadiusFormOrgin()
{
radius= Math.Sqrt((point.x * point.x) + (point.y * point.y));
return radius;
}
//point checker
private bool checkPointInsideCircle(Point point)
{
return point.DistanceFromOrigin <= radius;
}
public List<Point> pointsInsideCircle(List<Point> points)
{
foreach(Point point in points)
{
if (checkPointInsideCircle(point))
{
pointsInsideThisCircle.Add(point);
}
}
return pointsInsideThisCircle;
}
public int countGreenPoints()
{
int count = 0;
foreach(Point p in pointsInsideThisCircle)
{
if (p.Color == 'G')
{
count++;
}
}
numberOfGreenPoints = count;
return count;
}
public int countRedPoints()
{
int count= 0;
foreach(Point p in pointsInsideThisCircle)
{
if(p.Color == 'R')
{
count++;
}
}
numberOfRedPoints = count;
return count;
}
public bool checkForEvenNumberOfRedAndGreenPoints()
{
return numberOfRedPoints == numberOfGreenPoints;
}
public int numberOfPointsInside()
{
return pointsInsideThisCircle.Count;
}
}
internal class Point
{
public int x;
public int y;
private char color;
public double distanceFromOrigin;
public Point(int x,int y,char color)
{
this.x = x;
this.y = y;
this.color = color;
}
public char Color
{
get { return color; }
}
public double DistanceFromOrigin
{
get {
distanceFromOrigin = calculateRadiusFormOrgin(x, y);
return distanceFromOrigin;
}
}
private Double calculateRadiusFormOrgin(int x, int y)
{
distanceFromOrigin = Math.Sqrt((x * x) + (y * y));
return distanceFromOrigin;
}
}
internal class Finder
{
public List<Point> Points = new List<Point>();// { get; set; }
public int minDistanceFromOrigin = 0;
List<double> distances = new List<double>();
public Finder(int[] x,int[] y,string colors)
{
char[] c = colors.ToCharArray();
for(int i = 0; i < x.Length; i++)
{
Points.Add(new Point(x[i], y[i], c[i]));
}
}
public int findEvenPointsCircle()
{
int res = 0;
allPointsDistances();
List<double> uniqueDistances = findUnqueDistances(distances);
List<Circle> circles = createCirclesWithPoints(uniqueDistances);
foreach (Circle c in circles)
{
if (c.checkForEvenNumberOfRedAndGreenPoints())
{
res= c.numberOfPointsInside();
}
}
return res;
}
public List<Circle> createCirclesWithPoints(List<double> uniqueDistances)
{
List<Circle> circles = new List<Circle>();
foreach (double dis in uniqueDistances)
{
Point ps = Points.Find(p => p.distanceFromOrigin == dis);
Circle c = new Circle(ps);
c.calculateRadiusFormOrgin();
c.pointsInsideCircle(Points);
c.countGreenPoints();
c.countRedPoints();
circles.Add(c);
}
return circles;
}
private List<double> findUnqueDistances(List<double> DistancesTemp)
{
double d = 0;
//list<double> dis=distances.OrderByDescending(d).ThenBy(d => d).ToList();
DistancesTemp.Sort();
List<double> unqueDistances= new List<double> ();
foreach (double distance in DistancesTemp)
{
if (distance != d)
unqueDistances.Add(distance);
d = distance;
}
return unqueDistances;
}
public double findMinDistances(List<double> distances)
{
return distances.Min();
}
private void allPointsDistances()
{
foreach (Point point in Points)
{
distances.Add(point.DistanceFromOrigin);
}
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
// you can also use other imports, for example:
// using System.Collections.Generic;
// you can write to stdout for debugging purposes, e.g.
// Console.WriteLine("this is a debug message");
namespace challenge{
class Solution {
public int solution(int[] X, int[] Y, string colors) {
var f= new Finder(X,Y,colors);
f.
}
}
internal class Circle
{
private Point point;
private double radius;
private List<Point> pointsInsideThisCircle =new List<Point>();
private int numberOfGreenPoints;
private int numberOfRedPoints;
public Circle(Point point)
{
this.point = point;
}
public Double calculateRadiusFormOrgin()
{
radius= Math.Sqrt((point.x * point.x) + (point.y * point.y));
return radius;
}
//point checker
private bool checkPointInsideCircle(Point point)
{
return point.DistanceFromOrigin <= radius;
}
public List<Point> pointsInsideCircle(List<Point> points)
{
foreach(Point point in points)
{
if (checkPointInsideCircle(point))
{
pointsInsideThisCircle.Add(point);
}
}
return pointsInsideThisCircle;
}
public int countGreenPoints()
{
int count = 0;
foreach(Point p in pointsInsideThisCircle)
{
if (p.Color == 'G')
{
count++;
}
}
numberOfGreenPoints = count;
return count;
}
public int countRedPoints()
{
int count= 0;
foreach(Point p in pointsInsideThisCircle)
{
if(p.Color == 'R')
{
count++;
}
}
numberOfRedPoints = count;
return count;
}
public bool checkForEvenNumberOfRedAndGreenPoints()
{
return numberOfRedPoints == numberOfGreenPoints;
}
public int numberOfPointsInside()
{
return pointsInsideThisCircle.Count;
}
}
internal class Point
{
public int x;
public int y;
private char color;
public double distanceFromOrigin;
public Point(int x,int y,char color)
{
this.x = x;
this.y = y;
this.color = color;
}
public char Color
{
get { return color; }
}
public double DistanceFromOrigin
{
get {
distanceFromOrigin = calculateRadiusFormOrgin(x, y);
return distanceFromOrigin;
}
}
private Double calculateRadiusFormOrgin(int x, int y)
{
distanceFromOrigin = Math.Sqrt((x * x) + (y * y));
return distanceFromOrigin;
}
}
internal class Finder
{
public List<Point> Points = new List<Point>();// { get; set; }
public int minDistanceFromOrigin = 0;
List<double> distances = new List<double>();
public Finder(int[] x,int[] y,string colors)
{
char[] c = colors.ToCharArray();
for(int i = 0; i < x.Length; i++)
{
Points.Add(new Point(x[i], y[i], c[i]));
}
}
public int findEvenPointsCircle()
{
int res = 0;
allPointsDistances();
List<double> uniqueDistances = findUnqueDistances(distances);
List<Circle> circles = createCirclesWithPoints(uniqueDistances);
foreach (Circle c in circles)
{
if (c.checkForEvenNumberOfRedAndGreenPoints())
{
res= c.numberOfPointsInside();
}
}
return res;
}
public List<Circle> createCirclesWithPoints(List<double> uniqueDistances)
{
List<Circle> circles = new List<Circle>();
foreach (double dis in uniqueDistances)
{
Point ps = Points.Find(p => p.distanceFromOrigin == dis);
Circle c = new Circle(ps);
c.calculateRadiusFormOrgin();
c.pointsInsideCircle(Points);
c.countGreenPoints();
c.countRedPoints();
circles.Add(c);
}
return circles;
}
private List<double> findUnqueDistances(List<double> DistancesTemp)
{
double d = 0;
//list<double> dis=distances.OrderByDescending(d).ThenBy(d => d).ToList();
DistancesTemp.Sort();
List<double> unqueDistances= new List<double> ();
foreach (double distance in DistancesTemp)
{
if (distance != d)
unqueDistances.Add(distance);
d = distance;
}
return unqueDistances;
}
public double findMinDistances(List<double> distances)
{
return distances.Min();
}
private void allPointsDistances()
{
foreach (Point point in Points)
{
distances.Add(point.DistanceFromOrigin);
}
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
// you can also use other imports, for example:
// using System.Collections.Generic;
// you can write to stdout for debugging purposes, e.g.
// Console.WriteLine("this is a debug message");
namespace challenge{
class Solution {
public int solution(int[] X, int[] Y, string colors) {
var f= new Finder(X,Y,colors);
f.findEvenPointsCircle();
}
}
internal class Circle
{
private Point point;
private double radius;
private List<Point> pointsInsideThisCircle =new List<Point>();
private int numberOfGreenPoints;
private int numberOfRedPoints;
public Circle(Point point)
{
this.point = point;
}
public Double calculateRadiusFormOrgin()
{
radius= Math.Sqrt((point.x * point.x) + (point.y * point.y));
return radius;
}
//point checker
private bool checkPointInsideCircle(Point point)
{
return point.DistanceFromOrigin <= radius;
}
public List<Point> pointsInsideCircle(List<Point> points)
{
foreach(Point point in points)
{
if (checkPointInsideCircle(point))
{
pointsInsideThisCircle.Add(point);
}
}
return pointsInsideThisCircle;
}
public int countGreenPoints()
{
int count = 0;
foreach(Point p in pointsInsideThisCircle)
{
if (p.Color == 'G')
{
count++;
}
}
numberOfGreenPoints = count;
return count;
}
public int countRedPoints()
{
int count= 0;
foreach(Point p in pointsInsideThisCircle)
{
if(p.Color == 'R')
{
count++;
}
}
numberOfRedPoints = count;
return count;
}
public bool checkForEvenNumberOfRedAndGreenPoints()
{
return numberOfRedPoints == numberOfGreenPoints;
}
public int numberOfPointsInside()
{
return pointsInsideThisCircle.Count;
}
}
internal class Point
{
public int x;
public int y;
private char color;
public double distanceFromOrigin;
public Point(int x,int y,char color)
{
this.x = x;
this.y = y;
this.color = color;
}
public char Color
{
get { return color; }
}
public double DistanceFromOrigin
{
get {
distanceFromOrigin = calculateRadiusFormOrgin(x, y);
return distanceFromOrigin;
}
}
private Double calculateRadiusFormOrgin(int x, int y)
{
distanceFromOrigin = Math.Sqrt((x * x) + (y * y));
return distanceFromOrigin;
}
}
internal class Finder
{
public List<Point> Points = new List<Point>();// { get; set; }
public int minDistanceFromOrigin = 0;
List<double> distances = new List<double>();
public Finder(int[] x,int[] y,string colors)
{
char[] c = colors.ToCharArray();
for(int i = 0; i < x.Length; i++)
{
Points.Add(new Point(x[i], y[i], c[i]));
}
}
public int findEvenPointsCircle()
{
int res = 0;
allPointsDistances();
List<double> uniqueDistances = findUnqueDistances(distances);
List<Circle> circles = createCirclesWithPoints(uniqueDistances);
foreach (Circle c in circles)
{
if (c.checkForEvenNumberOfRedAndGreenPoints())
{
res= c.numberOfPointsInside();
}
}
return res;
}
public List<Circle> createCirclesWithPoints(List<double> uniqueDistances)
{
List<Circle> circles = new List<Circle>();
foreach (double dis in uniqueDistances)
{
Point ps = Points.Find(p => p.distanceFromOrigin == dis);
Circle c = new Circle(ps);
c.calculateRadiusFormOrgin();
c.pointsInsideCircle(Points);
c.countGreenPoints();
c.countRedPoints();
circles.Add(c);
}
return circles;
}
private List<double> findUnqueDistances(List<double> DistancesTemp)
{
double d = 0;
//list<double> dis=distances.OrderByDescending(d).ThenBy(d => d).ToList();
DistancesTemp.Sort();
List<double> unqueDistances= new List<double> ();
foreach (double distance in DistancesTemp)
{
if (distance != d)
unqueDistances.Add(distance);
d = distance;
}
return unqueDistances;
}
public double findMinDistances(List<double> distances)
{
return distances.Min();
}
private void allPointsDistances()
{
foreach (Point point in Points)
{
distances.Add(point.DistanceFromOrigin);
}
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
// you can also use other imports, for example:
// using System.Collections.Generic;
// you can write to stdout for debugging purposes, e.g.
// Console.WriteLine("this is a debug message");
namespace challenge{
class Solution {
public int solution(int[] X, int[] Y, string colors) {
var f= new Finder(X,Y,colors);
return f.findEvenPointsCircle();
}
}
internal class Circle
{
private Point point;
private double radius;
private List<Point> pointsInsideThisCircle =new List<Point>();
private int numberOfGreenPoints;
private int numberOfRedPoints;
public Circle(Point point)
{
this.point = point;
}
public Double calculateRadiusFormOrgin()
{
radius= Math.Sqrt((point.x * point.x) + (point.y * point.y));
return radius;
}
//point checker
private bool checkPointInsideCircle(Point point)
{
return point.DistanceFromOrigin <= radius;
}
public List<Point> pointsInsideCircle(List<Point> points)
{
foreach(Point point in points)
{
if (checkPointInsideCircle(point))
{
pointsInsideThisCircle.Add(point);
}
}
return pointsInsideThisCircle;
}
public int countGreenPoints()
{
int count = 0;
foreach(Point p in pointsInsideThisCircle)
{
if (p.Color == 'G')
{
count++;
}
}
numberOfGreenPoints = count;
return count;
}
public int countRedPoints()
{
int count= 0;
foreach(Point p in pointsInsideThisCircle)
{
if(p.Color == 'R')
{
count++;
}
}
numberOfRedPoints = count;
return count;
}
public bool checkForEvenNumberOfRedAndGreenPoints()
{
return numberOfRedPoints == numberOfGreenPoints;
}
public int numberOfPointsInside()
{
return pointsInsideThisCircle.Count;
}
}
internal class Point
{
public int x;
public int y;
private char color;
public double distanceFromOrigin;
public Point(int x,int y,char color)
{
this.x = x;
this.y = y;
this.color = color;
}
public char Color
{
get { return color; }
}
public double DistanceFromOrigin
{
get {
distanceFromOrigin = calculateRadiusFormOrgin(x, y);
return distanceFromOrigin;
}
}
private Double calculateRadiusFormOrgin(int x, int y)
{
distanceFromOrigin = Math.Sqrt((x * x) + (y * y));
return distanceFromOrigin;
}
}
internal class Finder
{
public List<Point> Points = new List<Point>();// { get; set; }
public int minDistanceFromOrigin = 0;
List<double> distances = new List<double>();
public Finder(int[] x,int[] y,string colors)
{
char[] c = colors.ToCharArray();
for(int i = 0; i < x.Length; i++)
{
Points.Add(new Point(x[i], y[i], c[i]));
}
}
public int findEvenPointsCircle()
{
int res = 0;
allPointsDistances();
List<double> uniqueDistances = findUnqueDistances(distances);
List<Circle> circles = createCirclesWithPoints(uniqueDistances);
foreach (Circle c in circles)
{
if (c.checkForEvenNumberOfRedAndGreenPoints())
{
res= c.numberOfPointsInside();
}
}
return res;
}
public List<Circle> createCirclesWithPoints(List<double> uniqueDistances)
{
List<Circle> circles = new List<Circle>();
foreach (double dis in uniqueDistances)
{
Point ps = Points.Find(p => p.distanceFromOrigin == dis);
Circle c = new Circle(ps);
c.calculateRadiusFormOrgin();
c.pointsInsideCircle(Points);
c.countGreenPoints();
c.countRedPoints();
circles.Add(c);
}
return circles;
}
private List<double> findUnqueDistances(List<double> DistancesTemp)
{
double d = 0;
//list<double> dis=distances.OrderByDescending(d).ThenBy(d => d).ToList();
DistancesTemp.Sort();
List<double> unqueDistances= new List<double> ();
foreach (double distance in DistancesTemp)
{
if (distance != d)
unqueDistances.Add(distance);
d = distance;
}
return unqueDistances;
}
public double findMinDistances(List<double> distances)
{
return distances.Min();
}
private void allPointsDistances()
{
foreach (Point point in Points)
{
distances.Add(point.DistanceFromOrigin);
}
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
// you can also use other imports, for example:
// using System.Collections.Generic;
// you can write to stdout for debugging purposes, e.g.
// Console.WriteLine("this is a debug message");
namespace challenge{
class Solution {
public int solution(int[] X, int[] Y, string colors) {
var f= new Finder(X,Y,colors);
return f.findEvenPointsCircle();
}
}
internal class Circle
{
private Point point;
private double radius;
private List<Point> pointsInsideThisCircle =new List<Point>();
private int numberOfGreenPoints;
private int numberOfRedPoints;
public Circle(Point point)
{
this.point = point;
}
public Double calculateRadiusFormOrgin()
{
radius= Math.Sqrt((point.x * point.x) + (point.y * point.y));
return radius;
}
//point checker
private bool checkPointInsideCircle(Point point)
{
return point.DistanceFromOrigin <= radius;
}
public List<Point> pointsInsideCircle(List<Point> points)
{
foreach(Point point in points)
{
if (checkPointInsideCircle(point))
{
pointsInsideThisCircle.Add(point);
}
}
return pointsInsideThisCircle;
}
public int countGreenPoints()
{
int count = 0;
foreach(Point p in pointsInsideThisCircle)
{
if (p.Color == 'G')
{
count++;
}
}
numberOfGreenPoints = count;
return count;
}
public int countRedPoints()
{
int count= 0;
foreach(Point p in pointsInsideThisCircle)
{
if(p.Color == 'R')
{
count++;
}
}
numberOfRedPoints = count;
return count;
}
public bool checkForEvenNumberOfRedAndGreenPoints()
{
return numberOfRedPoints == numberOfGreenPoints;
}
public int numberOfPointsInside()
{
return pointsInsideThisCircle.Count;
}
}
internal class Point
{
public int x;
public int y;
private char color;
public double distanceFromOrigin;
public Point(int x,int y,char color)
{
this.x = x;
this.y = y;
this.color = color;
}
public char Color
{
get { return color; }
}
public double DistanceFromOrigin
{
get {
distanceFromOrigin = calculateRadiusFormOrgin(x, y);
return distanceFromOrigin;
}
}
private Double calculateRadiusFormOrgin(int x, int y)
{
distanceFromOrigin = Math.Sqrt((x * x) + (y * y));
return distanceFromOrigin;
}
}
internal class Finder
{
public List<Point> Points = new List<Point>();// { get; set; }
public int minDistanceFromOrigin = 0;
List<double> distances = new List<double>();
public Finder(int[] x,int[] y,string colors)
{
char[] c = colors.ToCharArray();
for(int i = 0; i < x.Length; i++)
{
Points.Add(new Point(x[i], y[i], c[i]));
}
}
public int findEvenPointsCircle()
{
int res = 0;
allPointsDistances();
List<double> uniqueDistances = findUnqueDistances(distances);
List<Circle> circles = createCirclesWithPoints(uniqueDistances);
foreach (Circle c in circles)
{
if (c.checkForEvenNumberOfRedAndGreenPoints())
{
res= c.numberOfPointsInside();
}
}
return res;
}
public List<Circle> createCirclesWithPoints(List<double> uniqueDistances)
{
List<Circle> circles = new List<Circle>();
foreach (double dis in uniqueDistances)
{
Point ps = Points.Find(p => p.distanceFromOrigin == dis);
Circle c = new Circle(ps);
c.calculateRadiusFormOrgin();
c.pointsInsideCircle(Points);
c.countGreenPoints();
c.countRedPoints();
circles.Add(c);
}
return circles;
}
private List<double> findUnqueDistances(List<double> DistancesTemp)
{
double d = 0;
//list<double> dis=distances.OrderByDescending(d).ThenBy(d => d).ToList();
DistancesTemp.Sort();
List<double> unqueDistances= new List<double> ();
foreach (double distance in DistancesTemp)
{
if (distance != d)
unqueDistances.Add(distance);
d = distance;
}
return unqueDistances;
}
public double findMinDistances(List<double> distances)
{
return distances.Min();
}
private void allPointsDistances()
{
foreach (Point point in Points)
{
distances.Add(point.DistanceFromOrigin);
}
}
}
}
Compilation failed: 1 error(s), 0 warnings exec.cs(18,5): error CS0246: The type or namespace name `Solution' could not be found. Are you missing `challenge' using directive?
using System;
using System.Collections.Generic;
using System.Linq;
// you can also use other imports, for example:
// using System.Collections.Generic;
// you can write to stdout for debugging purposes, e.g.
// Console.WriteLine("this is a debug message");
namespace challenge
class Solution {
public int solution(int[] X, int[] Y, string colors) {
var f= new Finder(X,Y,colors);
return f.findEvenPointsCircle();
}
}
internal class Circle
{
private Point point;
private double radius;
private List<Point> pointsInsideThisCircle =new List<Point>();
private int numberOfGreenPoints;
private int numberOfRedPoints;
public Circle(Point point)
{
this.point = point;
}
public Double calculateRadiusFormOrgin()
{
radius= Math.Sqrt((point.x * point.x) + (point.y * point.y));
return radius;
}
//point checker
private bool checkPointInsideCircle(Point point)
{
return point.DistanceFromOrigin <= radius;
}
public List<Point> pointsInsideCircle(List<Point> points)
{
foreach(Point point in points)
{
if (checkPointInsideCircle(point))
{
pointsInsideThisCircle.Add(point);
}
}
return pointsInsideThisCircle;
}
public int countGreenPoints()
{
int count = 0;
foreach(Point p in pointsInsideThisCircle)
{
if (p.Color == 'G')
{
count++;
}
}
numberOfGreenPoints = count;
return count;
}
public int countRedPoints()
{
int count= 0;
foreach(Point p in pointsInsideThisCircle)
{
if(p.Color == 'R')
{
count++;
}
}
numberOfRedPoints = count;
return count;
}
public bool checkForEvenNumberOfRedAndGreenPoints()
{
return numberOfRedPoints == numberOfGreenPoints;
}
public int numberOfPointsInside()
{
return pointsInsideThisCircle.Count;
}
}
internal class Point
{
public int x;
public int y;
private char color;
public double distanceFromOrigin;
public Point(int x,int y,char color)
{
this.x = x;
this.y = y;
this.color = color;
}
public char Color
{
get { return color; }
}
public double DistanceFromOrigin
{
get {
distanceFromOrigin = calculateRadiusFormOrgin(x, y);
return distanceFromOrigin;
}
}
private Double calculateRadiusFormOrgin(int x, int y)
{
distanceFromOrigin = Math.Sqrt((x * x) + (y * y));
return distanceFromOrigin;
}
}
internal class Finder
{
public List<Point> Points = new List<Point>();// { get; set; }
public int minDistanceFromOrigin = 0;
List<double> distances = new List<double>();
public Finder(int[] x,int[] y,string colors)
{
char[] c = colors.ToCharArray();
for(int i = 0; i < x.Length; i++)
{
Points.Add(new Point(x[i], y[i], c[i]));
}
}
public int findEvenPointsCircle()
{
int res = 0;
allPointsDistances();
List<double> uniqueDistances = findUnqueDistances(distances);
List<Circle> circles = createCirclesWithPoints(uniqueDistances);
foreach (Circle c in circles)
{
if (c.checkForEvenNumberOfRedAndGreenPoints())
{
res= c.numberOfPointsInside();
}
}
return res;
}
public List<Circle> createCirclesWithPoints(List<double> uniqueDistances)
{
List<Circle> circles = new List<Circle>();
foreach (double dis in uniqueDistances)
{
Point ps = Points.Find(p => p.distanceFromOrigin == dis);
Circle c = new Circle(ps);
c.calculateRadiusFormOrgin();
c.pointsInsideCircle(Points);
c.countGreenPoints();
c.countRedPoints();
circles.Add(c);
}
return circles;
}
private List<double> findUnqueDistances(List<double> DistancesTemp)
{
double d = 0;
//list<double> dis=distances.OrderByDescending(d).ThenBy(d => d).ToList();
DistancesTemp.Sort();
List<double> unqueDistances= new List<double> ();
foreach (double distance in DistancesTemp)
{
if (distance != d)
unqueDistances.Add(distance);
d = distance;
}
return unqueDistances;
}
public double findMinDistances(List<double> distances)
{
return distances.Min();
}
private void allPointsDistances()
{
foreach (Point point in Points)
{
distances.Add(point.DistanceFromOrigin);
}
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
// you can also use other imports, for example:
// using System.Collections.Generic;
// you can write to stdout for debugging purposes, e.g.
// Console.WriteLine("this is a debug message");
class Solution {
public int solution(int[] X, int[] Y, string colors) {
var f= new Finder(X,Y,colors);
return f.findEvenPointsCircle();
}
}
internal class Circle
{
private Point point;
private double radius;
private List<Point> pointsInsideThisCircle =new List<Point>();
private int numberOfGreenPoints;
private int numberOfRedPoints;
public Circle(Point point)
{
this.point = point;
}
public Double calculateRadiusFormOrgin()
{
radius= Math.Sqrt((point.x * point.x) + (point.y * point.y));
return radius;
}
//point checker
private bool checkPointInsideCircle(Point point)
{
return point.DistanceFromOrigin <= radius;
}
public List<Point> pointsInsideCircle(List<Point> points)
{
foreach(Point point in points)
{
if (checkPointInsideCircle(point))
{
pointsInsideThisCircle.Add(point);
}
}
return pointsInsideThisCircle;
}
public int countGreenPoints()
{
int count = 0;
foreach(Point p in pointsInsideThisCircle)
{
if (p.Color == 'G')
{
count++;
}
}
numberOfGreenPoints = count;
return count;
}
public int countRedPoints()
{
int count= 0;
foreach(Point p in pointsInsideThisCircle)
{
if(p.Color == 'R')
{
count++;
}
}
numberOfRedPoints = count;
return count;
}
public bool checkForEvenNumberOfRedAndGreenPoints()
{
return numberOfRedPoints == numberOfGreenPoints;
}
public int numberOfPointsInside()
{
return pointsInsideThisCircle.Count;
}
}
internal class Point
{
public int x;
public int y;
private char color;
public double distanceFromOrigin;
public Point(int x,int y,char color)
{
this.x = x;
this.y = y;
this.color = color;
}
public char Color
{
get { return color; }
}
public double DistanceFromOrigin
{
get {
distanceFromOrigin = calculateRadiusFormOrgin(x, y);
return distanceFromOrigin;
}
}
private Double calculateRadiusFormOrgin(int x, int y)
{
distanceFromOrigin = Math.Sqrt((x * x) + (y * y));
return distanceFromOrigin;
}
}
internal class Finder
{
public List<Point> Points = new List<Point>();// { get; set; }
public int minDistanceFromOrigin = 0;
List<double> distances = new List<double>();
public Finder(int[] x,int[] y,string colors)
{
char[] c = colors.ToCharArray();
for(int i = 0; i < x.Length; i++)
{
Points.Add(new Point(x[i], y[i], c[i]));
}
}
public int findEvenPointsCircle()
{
int res = 0;
allPointsDistances();
List<double> uniqueDistances = findUnqueDistances(distances);
List<Circle> circles = createCirclesWithPoints(uniqueDistances);
foreach (Circle c in circles)
{
if (c.checkForEvenNumberOfRedAndGreenPoints())
{
res= c.numberOfPointsInside();
}
}
return res;
}
public List<Circle> createCirclesWithPoints(List<double> uniqueDistances)
{
List<Circle> circles = new List<Circle>();
foreach (double dis in uniqueDistances)
{
Point ps = Points.Find(p => p.distanceFromOrigin == dis);
Circle c = new Circle(ps);
c.calculateRadiusFormOrgin();
c.pointsInsideCircle(Points);
c.countGreenPoints();
c.countRedPoints();
circles.Add(c);
}
return circles;
}
private List<double> findUnqueDistances(List<double> DistancesTemp)
{
double d = 0;
//list<double> dis=distances.OrderByDescending(d).ThenBy(d => d).ToList();
DistancesTemp.Sort();
List<double> unqueDistances= new List<double> ();
foreach (double distance in DistancesTemp)
{
if (distance != d)
unqueDistances.Add(distance);
d = distance;
}
return unqueDistances;
}
public double findMinDistances(List<double> distances)
{
return distances.Min();
}
private void allPointsDistances()
{
foreach (Point point in Points)
{
distances.Add(point.DistanceFromOrigin);
}
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
// you can also use other imports, for example:
// using System.Collections.Generic;
// you can write to stdout for debugging purposes, e.g.
// Console.WriteLine("this is a debug message");
class Solution {
public int solution(int[] X, int[] Y, string colors) {
var f= new Finder(X,Y,colors);
return f.findEvenPointsCircle();
}
}
internal class Circle
{
private Point point;
private double radius;
private List<Point> pointsInsideThisCircle =new List<Point>();
private int numberOfGreenPoints;
private int numberOfRedPoints;
public Circle(Point point)
{
this.point = point;
}
public Double calculateRadiusFormOrgin()
{
radius= Math.Sqrt((point.x * point.x) + (point.y * point.y));
return radius;
}
//point checker
private bool checkPointInsideCircle(Point point)
{
return point.DistanceFromOrigin <= radius;
}
public List<Point> pointsInsideCircle(List<Point> points)
{
foreach(Point point in points)
{
if (checkPointInsideCircle(point))
{
pointsInsideThisCircle.Add(point);
}
}
return pointsInsideThisCircle;
}
public int countGreenPoints()
{
int count = 0;
foreach(Point p in pointsInsideThisCircle)
{
if (p.Color == 'G')
{
count++;
}
}
numberOfGreenPoints = count;
return count;
}
public int countRedPoints()
{
int count= 0;
foreach(Point p in pointsInsideThisCircle)
{
if(p.Color == 'R')
{
count++;
}
}
numberOfRedPoints = count;
return count;
}
public bool checkForEvenNumberOfRedAndGreenPoints()
{
return numberOfRedPoints == numberOfGreenPoints;
}
public int numberOfPointsInside()
{
return pointsInsideThisCircle.Count;
}
}
internal class Point
{
public int x;
public int y;
private char color;
public double distanceFromOrigin;
public Point(int x,int y,char color)
{
this.x = x;
this.y = y;
this.color = color;
}
public char Color
{
get { return color; }
}
public double DistanceFromOrigin
{
get {
distanceFromOrigin = calculateRadiusFormOrgin(x, y);
return distanceFromOrigin;
}
}
private Double calculateRadiusFormOrgin(int x, int y)
{
distanceFromOrigin = Math.Sqrt((x * x) + (y * y));
return distanceFromOrigin;
}
}
internal class Finder
{
public List<Point> Points = new List<Point>();// { get; set; }
public int minDistanceFromOrigin = 0;
List<double> distances = new List<double>();
public Finder(int[] x,int[] y,string colors)
{
char[] c = colors.ToCharArray();
for(int i = 0; i < x.Length; i++)
{
Points.Add(new Point(x[i], y[i], c[i]));
}
}
public int findEvenPointsCircle()
{
int res = 0;
allPointsDistances();
List<double> uniqueDistances = findUnqueDistances(distances);
List<Circle> circles = createCirclesWithPoints(uniqueDistances);
foreach (Circle c in circles)
{
if (c.checkForEvenNumberOfRedAndGreenPoints())
{
res= c.numberOfPointsInside();
}
}
return res;
}
public List<Circle> createCirclesWithPoints(List<double> uniqueDistances)
{
List<Circle> circles = new List<Circle>();
foreach (double dis in uniqueDistances)
{
Point ps = Points.Find(p => p.distanceFromOrigin == dis);
Circle c = new Circle(ps);
c.calculateRadiusFormOrgin();
c.pointsInsideCircle(Points);
c.countGreenPoints();
c.countRedPoints();
circles.Add(c);
}
return circles;
}
private List<double> findUnqueDistances(List<double> DistancesTemp)
{
double d = 0;
//list<double> dis=distances.OrderByDescending(d).ThenBy(d => d).ToList();
DistancesTemp.Sort();
List<double> unqueDistances= new List<double> ();
foreach (double distance in DistancesTemp)
{
if (distance != d)
unqueDistances.Add(distance);
d = distance;
}
return unqueDistances;
}
public double findMinDistances(List<double> distances)
{
return distances.Min();
}
private void allPointsDistances()
{
foreach (Point point in Points)
{
distances.Add(point.DistanceFromOrigin);
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
// you can also use other imports, for example:
// using System.Collections.Generic;
// you can write to stdout for debugging purposes, e.g.
// Console.WriteLine("this is a debug message");
class Solution {
public int solution(int[] X, int[] Y, string colors) {
var f= new Finder(X,Y,colors);
return f.findEvenPointsCircle();
}
}
internal class Circle
{
private Point point;
private double radius;
private List<Point> pointsInsideThisCircle =new List<Point>();
private int numberOfGreenPoints;
private int numberOfRedPoints;
public Circle(Point point)
{
this.point = point;
}
public Double calculateRadiusFormOrgin()
{
radius= Math.Sqrt((point.x * point.x) + (point.y * point.y));
return radius;
}
//point checker
private bool checkPointInsideCircle(Point point)
{
return point.DistanceFromOrigin <= radius;
}
public List<Point> pointsInsideCircle(List<Point> points)
{
foreach(Point point in points)
{
if (checkPointInsideCircle(point))
{
pointsInsideThisCircle.Add(point);
}
}
return pointsInsideThisCircle;
}
public int countGreenPoints()
{
int count = 0;
foreach(Point p in pointsInsideThisCircle)
{
if (p.Color == 'G')
{
count++;
}
}
numberOfGreenPoints = count;
return count;
}
public int countRedPoints()
{
int count= 0;
foreach(Point p in pointsInsideThisCircle)
{
if(p.Color == 'R')
{
count++;
}
}
numberOfRedPoints = count;
return count;
}
public bool checkForEvenNumberOfRedAndGreenPoints()
{
return numberOfRedPoints == numberOfGreenPoints;
}
public int numberOfPointsInside()
{
return pointsInsideThisCircle.Count;
}
}
internal class Point
{
public int x;
public int y;
private char color;
public double distanceFromOrigin;
public Point(int x,int y,char color)
{
this.x = x;
this.y = y;
this.color = color;
}
public char Color
{
get { return color; }
}
public double DistanceFromOrigin
{
get {
distanceFromOrigin = calculateRadiusFormOrgin(x, y);
return distanceFromOrigin;
}
}
private Double calculateRadiusFormOrgin(int x, int y)
{
distanceFromOrigin = Math.Sqrt((x * x) + (y * y));
return distanceFromOrigin;
}
}
internal class Finder
{
public List<Point> Points = new List<Point>();// { get; set; }
public int minDistanceFromOrigin = 0;
List<double> distances = new List<double>();
public Finder(int[] x,int[] y,string colors)
{
char[] c = colors.ToCharArray();
for(int i = 0; i < x.Length; i++)
{
Points.Add(new Point(x[i], y[i], c[i]));
}
}
public int findEvenPointsCircle()
{
int res = 0;
allPointsDistances();
List<double> uniqueDistances = findUnqueDistances(distances);
List<Circle> circles = createCirclesWithPoints(uniqueDistances);
foreach (Circle c in circles)
{
if (c.checkForEvenNumberOfRedAndGreenPoints())
{
res= c.numberOfPointsInside();
}
}
return res;
}
public List<Circle> createCirclesWithPoints(List<double> uniqueDistances)
{
List<Circle> circles = new List<Circle>();
foreach (double dis in uniqueDistances)
{
Point ps = Points.Find(p => p.distanceFromOrigin == dis);
Circle c = new Circle(ps);
c.calculateRadiusFormOrgin();
c.pointsInsideCircle(Points);
c.countGreenPoints();
c.countRedPoints();
circles.Add(c);
}
return circles;
}
private List<double> findUnqueDistances(List<double> DistancesTemp)
{
double d = 0;
//list<double> dis=distances.OrderByDescending(d).ThenBy(d => d).ToList();
DistancesTemp.Sort();
List<double> unqueDistances= new List<double> ();
foreach (double distance in DistancesTemp)
{
if (distance != d)
unqueDistances.Add(distance);
d = distance;
}
return unqueDistances;
}
public double findMinDistances(List<double> distances)
{
return distances.Min();
}
private void allPointsDistances()
{
foreach (Point point in Points)
{
distances.Add(point.DistanceFromOrigin);
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
// you can also use other imports, for example:
// using System.Collections.Generic;
// you can write to stdout for debugging purposes, e.g.
// Console.WriteLine("this is a debug message");
class Solution {
public int solution(int[] X, int[] Y, string colors) {
var f= new Finder(X,Y,colors);
return f.findEvenPointsCircle();
}
}
internal class Circle
{
private Point point;
private double radius;
private List<Point> pointsInsideThisCircle =new List<Point>();
private int numberOfGreenPoints;
private int numberOfRedPoints;
public Circle(Point point)
{
this.point = point;
}
public Double calculateRadiusFormOrgin()
{
radius= Math.Sqrt((point.x * point.x) + (point.y * point.y));
return radius;
}
//point checker
private bool checkPointInsideCircle(Point point)
{
return point.DistanceFromOrigin <= radius;
}
public List<Point> pointsInsideCircle(List<Point> points)
{
foreach(Point point in points)
{
if (checkPointInsideCircle(point))
{
pointsInsideThisCircle.Add(point);
}
}
return pointsInsideThisCircle;
}
public int countGreenPoints()
{
int count = 0;
foreach(Point p in pointsInsideThisCircle)
{
if (p.Color == 'G')
{
count++;
}
}
numberOfGreenPoints = count;
return count;
}
public int countRedPoints()
{
int count= 0;
foreach(Point p in pointsInsideThisCircle)
{
if(p.Color == 'R')
{
count++;
}
}
numberOfRedPoints = count;
return count;
}
public bool checkForEvenNumberOfRedAndGreenPoints()
{
return numberOfRedPoints == numberOfGreenPoints;
}
public int numberOfPointsInside()
{
return pointsInsideThisCircle.Count;
}
}
internal class Point
{
public int x;
public int y;
private char color;
public double distanceFromOrigin;
public Point(int x,int y,char color)
{
this.x = x;
this.y = y;
this.color = color;
}
public char Color
{
get { return color; }
}
public double DistanceFromOrigin
{
get {
distanceFromOrigin = calculateRadiusFormOrgin(x, y);
return distanceFromOrigin;
}
}
private Double calculateRadiusFormOrgin(int x, int y)
{
distanceFromOrigin = Math.Sqrt((x * x) + (y * y));
return distanceFromOrigin;
}
}
internal class Finder
{
public List<Point> Points = new List<Point>();// { get; set; }
public int minDistanceFromOrigin = 0;
List<double> distances = new List<double>();
public Finder(int[] x,int[] y,string colors)
{
char[] c = colors.ToCharArray();
for(int i = 0; i < x.Length; i++)
{
Points.Add(new Point(x[i], y[i], c[i]));
}
}
public int findEvenPointsCircle()
{
int res = 0;
allPointsDistances();
List<double> uniqueDistances = findUnqueDistances(distances);
List<Circle> circles = createCirclesWithPoints(uniqueDistances);
foreach (Circle c in circles)
{
if (c.checkForEvenNumberOfRedAndGreenPoints())
{
res= c.numberOfPointsInside();
}
}
return res;
}
public List<Circle> createCirclesWithPoints(List<double> uniqueDistances)
{
List<Circle> circles = new List<Circle>();
foreach (double dis in uniqueDistances)
{
Point ps = Points.Find(p => p.distanceFromOrigin == dis);
Circle c = new Circle(ps);
c.calculateRadiusFormOrgin();
c.pointsInsideCircle(Points);
c.countGreenPoints();
c.countRedPoints();
circles.Add(c);
}
return circles;
}
private List<double> findUnqueDistances(List<double> DistancesTemp)
{
double d = 0;
//list<double> dis=distances.OrderByDescending(d).ThenBy(d => d).ToList();
DistancesTemp.Sort();
List<double> unqueDistances= new List<double> ();
foreach (double distance in DistancesTemp)
{
if (distance != d)
unqueDistances.Add(distance);
d = distance;
}
return unqueDistances;
}
public double findMinDistances(List<double> distances)
{
return distances.Min();
}
private void allPointsDistances()
{
foreach (Point point in Points)
{
distances.Add(point.DistanceFromOrigin);
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
// you can also use other imports, for example:
// using System.Collections.Generic;
// you can write to stdout for debugging purposes, e.g.
// Console.WriteLine("this is a debug message");
class Solution {
public int solution(int[] X, int[] Y, string colors) {
var f= new Finder(X,Y,colors);
return f.findEvenPointsCircle();
}
}
internal class Circle
{
private Point point;
private double radius;
private List<Point> pointsInsideThisCircle =new List<Point>();
private int numberOfGreenPoints;
private int numberOfRedPoints;
public Circle(Point point)
{
this.point = point;
}
public Double calculateRadiusFormOrgin()
{
radius= Math.Sqrt((point.x * point.x) + (point.y * point.y));
return radius;
}
//point checker
private bool checkPointInsideCircle(Point point)
{
return point.DistanceFromOrigin <= radius;
}
public List<Point> pointsInsideCircle(List<Point> points)
{
foreach(Point point in points)
{
if (checkPointInsideCircle(point))
{
pointsInsideThisCircle.Add(point);
}
}
return pointsInsideThisCircle;
}
public int countGreenPoints()
{
int count = 0;
foreach(Point p in pointsInsideThisCircle)
{
if (p.Color == 'G')
{
count++;
}
}
numberOfGreenPoints = count;
return count;
}
public int countRedPoints()
{
int count= 0;
foreach(Point p in pointsInsideThisCircle)
{
if(p.Color == 'R')
{
count++;
}
}
numberOfRedPoints = count;
return count;
}
public bool checkForEvenNumberOfRedAndGreenPoints()
{
return numberOfRedPoints == numberOfGreenPoints;
}
public int numberOfPointsInside()
{
return pointsInsideThisCircle.Count;
}
}
internal class Point
{
public int x;
public int y;
private char color;
public double distanceFromOrigin;
public Point(int x,int y,char color)
{
this.x = x;
this.y = y;
this.color = color;
}
public char Color
{
get { return color; }
}
public double DistanceFromOrigin
{
get {
distanceFromOrigin = calculateRadiusFormOrgin(x, y);
return distanceFromOrigin;
}
}
private Double calculateRadiusFormOrgin(int x, int y)
{
distanceFromOrigin = Math.Sqrt((x * x) + (y * y));
return distanceFromOrigin;
}
}
internal class Finder
{
public List<Point> Points = new List<Point>();// { get; set; }
public int minDistanceFromOrigin = 0;
List<double> distances = new List<double>();
public Finder(int[] x,int[] y,string colors)
{
char[] c = colors.ToCharArray();
for(int i = 0; i < x.Length; i++)
{
Points.Add(new Point(x[i], y[i], c[i]));
}
}
public int findEvenPointsCircle()
{
int res = 0;
allPointsDistances();
List<double> uniqueDistances = findUnqueDistances(distances);
List<Circle> circles = createCirclesWithPoints(uniqueDistances);
foreach (Circle c in circles)
{
if (c.checkForEvenNumberOfRedAndGreenPoints())
{
res= c.numberOfPointsInside();
}
}
return res;
}
public List<Circle> createCirclesWithPoints(List<double> uniqueDistances)
{
List<Circle> circles = new List<Circle>();
foreach (double dis in uniqueDistances)
{
Point ps = Points.Find(p => p.distanceFromOrigin == dis);
Circle c = new Circle(ps);
c.calculateRadiusFormOrgin();
c.pointsInsideCircle(Points);
c.countGreenPoints();
c.countRedPoints();
circles.Add(c);
}
return circles;
}
private List<double> findUnqueDistances(List<double> DistancesTemp)
{
double d = 0;
//list<double> dis=distances.OrderByDescending(d).ThenBy(d => d).ToList();
DistancesTemp.Sort();
List<double> unqueDistances= new List<double> ();
foreach (double distance in DistancesTemp)
{
if (distance != d)
unqueDistances.Add(distance);
d = distance;
}
return unqueDistances;
}
public double findMinDistances(List<double> distances)
{
return distances.Min();
}
private void allPointsDistances()
{
foreach (Point point in Points)
{
distances.Add(point.DistanceFromOrigin);
}
}
}
The following issues have been detected: timeout errors.
Small tests where all points have distinct distances from the origin. N <= 50.
Small tests where the proportion of color occurences is imbalanced. N <= 50.
Small tests where points are given in increasing order of distance from (0, 0). N <= 50.
Big tests where all points have distinct distances from the origin.
Killed. Hard limit reached: 6.000 sec.
Big tests where the proportion of color occurences is imbalanced.
Killed. Hard limit reached: 6.000 sec.
Big tests where points are very close to the origin.
Killed. Hard limit reached: 6.000 sec.
Big tests where points are given in increasing order of distance from (0, 0).
Killed. Hard limit reached: 6.000 sec.