Професионална програма
Loading...
+ Нов въпрос
murkata86 avatar murkata86 10 Точки

Advanced C# - Sets and Dictionaries -Problem 19 Crossfite

Здравейте,

Вече втори ден се мъча върху задача 19 Crossfire от домашното Sets and Dictionaries. В Judge получавам само 30 точки. Ето го и кода, който написах:

 

http://pastebin.com/PWLbakDE

 

Някой ще може ли да погледне и да каже къде евентуално е проблема?

 

Поздрави,

Иван

Тагове:
0
C# Advanced
ArmenPotourlyan+deleted! avatar ArmenPotourlyan+deleted! 488 Точки

Здравей,

Ти проверяваш дали центърът на crossfire-a е в матрицата и на базата на това разполагаш пораженията по матрицата. Обаче ако центърът не е в матрицата, пак може да има поражения!

 

Пример: център 1, -1 с радиус 200

1 2 3                 1 2 3

4 5 6       =>      7 8 9

7 8 9
 

Впрочем вместо да си играеш с масивите, може би ще ти е по-лесно с лист от лист (List<List<int>>) от самото начало и просто да вадиш поразените клетки. Така няма излишно да копираш масиви наляво и надясно.

2
29/05/2016 16:05:19
murkata86 avatar murkata86 10 Точки

Супер, мерси много!

0
murkata86 avatar murkata86 10 Точки

Добавих проверката дали центъра е извн матрицата и дали кръста евентуално ще удари някои от клетките, но все още получавам само 30 точки и сега на последния тест фейлва проверката за време:

 

http://pastebin.com/bxwaxGWk

0
ArmenPotourlyan+deleted! avatar ArmenPotourlyan+deleted! 488 Точки

Навсякъде remainingRadius е сметнат грешно. Размерът на crossfire-a става с 1 по-малко по всички направления. Освен това, не може да има празни редове - когато един ред изчезне този след него отива на неговото място.

Пример:

1 2                                                                                     1 2

4              (при бомбардировката 4 изчезва) =>         6 7 8

6 7 8

0
31/05/2016 09:59:05