using System.Collections.Generic;
public static void Main()
var result = new Ray().solution(new Point2D[]{new Point2D{x = -1, y = -2}, new Point2D{x = 1, y = 2}, new Point2D{x = 2, y = 4}, });
Console.WriteLine(result);
private Point2D startPoint;
private Point2D endPoint;
public Ray(Point2D endPoint)
this.startPoint = new Point2D{x = 0, y = 0};
this.endPoint = endPoint;
public int solution(Point2D[] A)
List<Ray> rays = new List<Ray>();
rays.Add(new Ray(point));
foreach (var ray in rays)
if (ray.CheckIsOnLine(point))
rays.Add(new Ray(point));
public bool CheckIsOnLine(Point2D point)
var isOnSameLine = (startPoint.x - endPoint.x) / (point.x - endPoint.x) == (startPoint.y - endPoint.y) / (point.y - endPoint.y);
if (point.x > 0 && endPoint.x > 0 || point.x < 0 && endPoint.x < 0 || point.x == 0 && endPoint.x == 0)