13. Point in the Figure -задача със звездичка
Здравейте,
цяла вечер я решавам, докарах го до 95 точки, но накрая вече се забатачих в собствената си логика, и просто имам нужда и някой друг да погледне. Знам че проблема е някъде в общата страна на двата правоъгълника, използвах осемнадесет хиляди булеви оператора, за да проверя дали точката попада там, нооо...както казах вече се забатачих.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Point in the Figure
{
class Program
{
static void Main(string[] args)
{
int h = int.Parse(Console.ReadLine());
int x = int.Parse(Console.ReadLine());
int y = int.Parse(Console.ReadLine());
int x1 = 0;
int y1 = 0;
int x2 = 3 * h;
int y2 = h;
int x3 = h;
int y3 = h;
int x4 = 2 * h;
int y4 = 4 * h;
bool in_firsFigure = (x > x1) && (x < x2) && (y > y1) && (y < y2);
bool in_secondFigure = (x > x3) && (x < x4) && (y > y3) && (y < y4);
bool border = ((x == x1 && y >= y1 && y <= y2) || (x == x2 && y >= y1 && y <= y2)
|| (x == x3 && y >= y2 && y <= y4) || (x == x4 && y >= y2 && y <= y4))
|| ((y==y1 && x>=x1 && x<=x2) || (y == y2 && x >= x4 && x <= x2)
|| (y == y3 && x >= x1 && x <= x3) || (y == y4 && x >= x3 && x <= x4));
bool obchta_strana = (x >= x3 && x <= x4 && y == y2);
if (in_firsFigure || in_secondFigure || obchta_strana && !border)
Console.WriteLine("inside");
else if (border)
Console.WriteLine("Border");
else if (!border && !in_firsFigure && !in_secondFigure && !obchta_strana)
Console.WriteLine("outside");
}
}
}