Click here to Skip to main content
15,891,864 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
Shreyas is coming back to his apartment after a party. Unfortunately it’s dark outside and he’s unable to see his way back very clearly. The way back to his apartment goes by an open lake beside an open ground. This means the darkness could very easily throw him off track, causing him to fall into the lake. Help him find the shores of the lake so that he doesn’t fall into it.

Fortunately, points on the ground and on the lake can be differentiated on the basis of their hue, a value that represents the shade of the colour of a pixel. The hue value describes where the colour of the pixel lies on a rainbow-like colour spectrum. A hue value of 0 represents violet and a hue value of 255 represents red.

Given a matrix M representing the hue of the area from a satellite image, where the ground areas and lake areas would fall into a different range of hues, output a matrix P with the shores of the lake marked with 1 and non shore areas marked with 0. The input matrix may also contain hues related to vegetation and other small objects. These must not be marked in the output.

NOTE: All test cases will appear to be passed as long as an output of the correct dimensions is submitted. We're using a custom checker, so please check your score after every submission to see how your algorithm performed.

Input Format

The first line contains two integers P and Q representing the number of rows and columns in the matrix.

The next P lines contain a row of Q integers each, representing the hue of the point at that position.

Constraints

P, Q < 1000

Output Format

A matrix of size P x Q, where every point is marked either 1 or 0 depending on whether or not the current point is a shore or not.

Sample Input 0

10 10
67 67 67 67 67 67 67 67 67 67 
67 67 67 67 67 67 67 138 138 138 
67 67 67 67 67 138 138 138 138 138 
67 67 67 67 67 138 138 138 138 138 
67 67 67 67 67 135 127 137 138 138 
67 67 67 67 67 67 67 135 138 138 
67 67 67 67 67 67 67 137 138 138 
67 67 67 67 67 67 126 138 138 138 
67 67 67 67 67 138 138 138 138 138 
67 67 67 67 138 138 138 138 138 138
Sample Output 0

0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 1 1 
0 0 0 0 0 1 1 0 0 0 
0 0 0 0 0 1 0 0 0 0 
0 0 0 0 0 1 1 0 0 0 
0 0 0 0 0 0 0 1 0 0 
0 0 0 0 0 0 0 1 0 0 
0 0 0 0 0 0 1 1 0 0 
0 0 0 0 0 1 1 0 0 0 
0 0 0 0 1 1 0 0 0 0
Explanation 0

The left side of the matrix are filled with hue values much lower than the ones on the right side. Since higher values of hue represent redder areas, the right side would be the ground and the left side the lake. Hence the above output is obtained when the hue values significantly drop from right to left


What I have tried:

I do not know how to implement this .
Posted
Updated 17-Aug-18 9:16am
Comments
MadMyche 17-Aug-18 14:54pm    
Buy a flashlight

So, you show no attempt to solve the problem yourself, you have no question, you just want us to do your HomeWork.
HomeWork problems are simplified versions of the kind of problems you will have to solve in real life, their purpose is learning and practicing.

Quote:
I do not know how to implement this .

Take a sheet of paper and a pencil and solve the problem by hand, reread carefully the requirement, try again and think mechanical, this will be your algorithm.

We do not do your HomeWork.
HomeWork is not set to test your skills at begging other people to do your work, it is set to make you think and to help your teacher to check your understanding of the courses you have taken and also the problems you have at applying them.
Any failure of you will help your teacher spot your weaknesses and set remedial actions.
Any failure of you will help you to learn what works and what don't, it is called 'trial and error' learning.
So, give it a try, reread your lessons and start working. If you are stuck on a specific problem, show your code and explain this exact problem, we might help.

As programmer, your job is to create algorithms that solve specific problems and you can't rely on someone else to eternally do it for you, so there is a time where you will have to learn how to. And the sooner, the better.
When you just ask for the solution, it is like trying to learn to drive a car by having someone else training.
Creating an algorithm is basically finding the maths and make necessary adaptation to fit your actual problem.

The idea of "development" is as the word suggests: "The systematic use of scientific and technical knowledge to meet specific objectives or requirements." BusinessDictionary.com[^]
That's not the same thing as "have a quick google and give up if I can't find exactly the right code".
 
Share this answer
 
We do not do your homework: it is set for a reason. It is there so that you think about what you have been told, and try to understand it. It is also there so that your tutor can identify areas where you are weak, and focus more attention on remedial action.
And working out what to do from the specification (homework question in your case) is a big part of the task!

Try it yourself, you may find it is not as difficult as you think!

If you meet a specific problem, then please ask about that and we will do our best to help. But we aren't going to do it all for you!
 
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