Структура
Vector позволяет инициализировать и сравнивать векторы. Программа проходит все тесты, кроме одного (доступа к нему нет). Может, в сравнении есть какой-нибудь недочёт?
P.s.: парсинг вектора выполнен правильно, вопрос именно о методe
CompareTo(...)
using System;
using static System.Math;
internal struct Vector : IComparable<Vector>
{
public int X { get; private set; }
public int Y { get; private set; }
public const double DELTA = 0.0000001;
public Vector(int x, int y) => (X, Y) = (x, y);
public double Length => Sqrt(X * X + Y * Y);
public static Vector Parse(string input)
{
var coords = input.Split();
if (coords.Length < 2)
throw new ArgumentException("Incorrect vector");
return new Vector(int.Parse(coords[0]), int.Parse(coords[1]));
}
public int CompareTo(Vector other)
{
if (Length < other.Length)
return -1;
else if (Abs(Length - other.Length) < DELTA)
return 0;
return 1;
}
}