Сам код принимает в первой строке два значения: количество мишеней и количество выстрелов, далее соответственное количество строк расположений мишеней на координатной плоскости, после соответственное количество координат попаданий, строка вывода выглядит следующим образом: для каждой пули по порядку, если пуля попала в мишень, то выводится номер мишени(в соответствии с порядком ввода их координат, дважды попасть в одну нельзя), если же не попала, то выводится -1
using System;
namespace game2
{
class Program
{
static void Main()
{
string[] a = Console.ReadLine().Split(' '); //принял значения первой строки
int n = Int32.Parse(a[0]);
int m = Int32.Parse(a[1]); //преобразование элементов массива в int
int temp;
int[] mas = new int[m];//объявление конечного массива
int[,] bottleplace = new int[n, 4];//массив расположения бутылок
for (int i = 0; i < n; i++)
{
string[] c = Console.ReadLine().Split(' '); //прием координат бутылок по две точки(X Y нижней левой точки, X Y верхней правой)
bottleplace[i, 0] = Int32.Parse(c[0]);
bottleplace[i, 1] = Int32.Parse(c[1]);
bottleplace[i, 2] = Int32.Parse(c[2]);
bottleplace[i, 3] = Int32.Parse(c[3]);
}
int[,] bulletplace = new int[m, 2];//объявления массива попаданий пуль
for (int i = 0; i < m; i++)//перебор элементов массива пуль
{
string[] c = Console.ReadLine().Split(' ');//принятие координат
bulletplace[i, 0] = Int32.Parse(c[0]);
bulletplace[i, 1] = Int32.Parse(c[1]);
temp = 1;
for (int z = 0; z < n; z++)//сравнение массивов(если X и Y пули меньше X и Y верхней точки и больше нижней, то присвоить значение = номеру мишени, иначе -1)
{
if (bulletplace[i, 0] >= bottleplace[z, 0] & bulletplace[i, 0] <= bottleplace[z, 2] & bulletplace[i, 1] >= bottleplace[z, 1] & bulletplace[i, 1] <= bottleplace[z, 3])
{
mas[i] = z + 1;
temp = 0;
}
}
if (temp != 0)
{
mas[i] = -1;
}
else if(i > 0)
{
for(int x = i - 1; x >= 0; x--)//исключение повторяющихся попаданий по одной и той же мишени
{
if(mas[x] == mas[i])
{
mas[i] = -1;
}
}
}
}
for(int i = 0; i < m; i++)
{
Console.Write(mas[i]);
Console.Write(" ");
}
}
}
}
Выполнял тест, в котором ограничений во времени 2 секунды, количество выстрелов и мишеней выдается произвольное количество до 100000, а значения координат от -10^9 до 10^9, при тестах выдает ошибку, "Time limit exceeded"
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
есть 2 списка List<int> 1,2,3,4,5 2,3,4,5,6
Есть программа на С# (MonoDevelop, Linux), которая может при запуске управлять демоном (старт/стоп/статус)Как можно осуществить передачу данных между...
применял такой код для показа файла в папке через кнопку