Skip to content

Instantly share code, notes, and snippets.

@Nicknyr
Created October 20, 2019 23:49
Show Gist options
  • Save Nicknyr/a27ac76958f321879611760e08f2e28b to your computer and use it in GitHub Desktop.
Save Nicknyr/a27ac76958f321879611760e08f2e28b to your computer and use it in GitHub Desktop.
/*
Your friend advised you to see a new performance in the most popular theater in the city. He knows a lot about art and his advice is usually good, but not this time: the performance turned out to be awfully dull. It's so bad you want to sneak out, which is quite simple, especially since the exit is located right behind your row to the left. All you need to do is climb over your seat and make your way to the exit.
The main problem is your shyness: you're afraid that you'll end up blocking the view (even if only for a couple of seconds) of all the people who sit behind you and in your column or the columns to your left. To gain some courage, you decide to calculate the number of such people and see if you can possibly make it to the exit without disturbing too many people.
Given the total number of rows and columns in the theater (nRows and nCols, respectively), and the row and column you're sitting in, return the number of people who sit strictly behind you and in your column or to the left, assuming all seats are occupied.
Example
For nCols = 16, nRows = 11, col = 5, and row = 3, the output should be
seatsInTheater(nCols, nRows, col, row) = 96.
Here is what the theater looks like:
Input/Output
[execution time limit] 4 seconds (js)
[input] integer nCols
An integer, the number of theater's columns.
Guaranteed constraints:
1 ≤ nCols ≤ 1000.
[input] integer nRows
An integer, the number of theater's rows.
Guaranteed constraints:
1 ≤ nRows ≤ 1000.
[input] integer col
An integer, the column number of your own seat (1-based).
Guaranteed constraints:
1 ≤ col ≤ nCols.
[input] integer row
An integer, the row number of your own seat (1-based).
Guaranteed constraints:
1 ≤ row ≤ nRows.
[output] integer
The number of people who sit strictly behind you and in your column or to the left.
*/
// Solution :
function seatsInTheater(nCols, nRows, col, row) {
// Calculate area/total seats in theater
let totalSeats = nCols * nRows;
/* Calculate cols and rows behind my seat
Add one to col because my people behind me in my col are counted
*/
let newColNumber = nCols - col + 1;
let newRowNumber = nRows - row;
// Calculate area of seats behind me
let peopleBehindMe = newColNumber * newRowNumber;
return peopleBehindMe;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment