Click here to Skip to main content
15,887,485 members
Please Sign up or sign in to vote.
2.33/5 (2 votes)
See more:
we have this problem :
'Bessie wants to navigate her spaceship through a dangerous asteroid
field in the shape of an N x N grid (1 <= N <= 500). The grid
contains K asteroids (1 <= K <= 10,000), which are conveniently
located at the lattice points of the grid.

Fortunately, Bessie has a powerful weapon that can vaporize all the
asteroids in any given row or column of the grid with a single shot.
This weapon is quite expensive, so she wishes to use it sparingly.
Given the location of all the asteroids in the field, find the
minimum number of shots Bessie needs to fire to eliminate all of
the asteroids.'
we are given an input of two lines :
* Line 1: Two integers N and K, separated by a single space.

* Lines 2..K+1: Each line contains two space-separated integers R and
C (1 <= R, C <= N) denoting the row and column coordinates of
an asteroid, respectively.

and the request is to print the minimum shots needed!
at first it seemed very easy...
you compare the Y and X coordinates,find the maximum number of asteroids having the same X or Y and 'fire' at the coordinate or ordinate that has the more asteroids...and loop till there's noone left !
but what if Xmax=Ymax ?
should I 'destroy' whatever I want or should I go deeper ?
I am really confused
also :do you think there is a better way than mine to solve this problem ?
Posted
Updated 6-Mar-14 3:22am
v2
Comments
joshrduncan2012 6-Mar-14 9:54am    
What have you tried? Where are you stuck?

1 solution

That's a good start. Each time a row is eliminated, it may have also eliminated multiple columns (and vice versa).

After each round where Bessie clears a row or column with her cannon, you will need to recompute your row max and column max values.

Consider an asteroid map where the first row is filled with "N" asteroids and also the first column is filled with "N" asteroids.

Although the max row is N and the max column is N, this field can be cleared with two shots.
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900