BackhardBinary SearchGoogleAmazon

Matrix Vessel Extractor 34 Solution

Problem Statement

You are given a rectangular grid of integers with dimensions n rows and m columns, followed by an integer K. Your task is to compute the sum of all grid entries that are strictly greater than K. The input begins with three space‑separated integers n, m, and K. The next n lines each contain m space‑separated integers describing the grid. Output a single integer – the required sum. If no element exceeds K, output 0.

Example 1
Input
2 3 5 1 6 3 7 2 9
Output
22

Explanation: The grid contains six numbers: 1,6,3,7,2,9. Elements greater than K=5 are 6,7,9. Their sum is 6+7+9 = 22.

Example 2
Input
3 2 0 -1 2 3 -4 5 6
Output
16

Explanation: Elements larger than 0 are 2,3,5,6. Adding them yields 2+3+5+6 = 16.

Example 3
Input
1 5 10 11 9 12 10 15
Output
38

Explanation: Numbers exceeding K=10 are 11,12,15. Their sum is 11+12+15 = 38.

Constraints

  • 1 <= n, m <= 10^3
  • 1 <= n * m <= 10^5
  • -10^9 <= grid[i][j] <= 10^9
  • -10^9 <= K <= 10^9
Live Compiler1 Free Run Available
Loading Editor...
Test Cases & Output
Click "Run" to test your 1 free compile trial!

🚀 Practice this problem

Run code, get AI hints & track streak

Sign Up Free

Matrix Vessel Extractor 34 — Problem Statement & Solution Guide

Binary SearchHard2D Grid DP
TimeO(N log N)
|
SpaceO(N)

Problem Description

You are given a rectangular grid of integers with dimensions n rows and m columns, followed by an integer K. Your task is to compute the sum of all grid entries that are strictly greater than K. The input begins with three space‑separated integers n, m, and K. The next n lines each contain m space‑separated integers describing the grid. Output a single integer – the required sum. If no element exceeds K, output 0.

DSA Pattern Breakdown

DSA Pattern Breakdown

"Matrix Vessel Extractor 34"

hard

WHY DOES IT MATTER?

Binary search on a sorted structure turns linear scans into logarithmic lookups, dramatically cutting runtime for threshold‑based queries.

OPTIMIZATION CHALLENGE

The key is reducing repeated O(N) traversals to a single O(N log N) sort plus cheap O(log N) lookups.

REAL-WORLD CONNECTION

Databases use indexed columns to locate rows above a value in O(log N) instead of scanning every record.

Cache the sorted array and suffix sums in contiguous memory to exploit CPU cache lines and avoid repeated allocations.

COMPLEXITY AT A GLANCE

⏱ Time:O(N log N)
💾 Space:O(N)

Core Theory — Why This Approach?

The optimal solution treats the matrix as a flat list, sorts it, and builds a suffix‑sum array. Binary search then locates the first element > K in O(log(N)) time, allowing the sum of all larger values to be retrieved in O(1) from the pre‑computed suffix sums. A naïve scan of every cell costs O(N) time and O(1) space, which is acceptable for a single query but becomes prohibitive when N (n·m) reaches 10^7 or when multiple thresholds are asked, because each scan repeats the full traversal. By sorting once (O(N log N)) and using binary search, we amortize the cost and answer each threshold instantly, embodying the “pre‑process‑then‑query” paradigm common in binary‑search‑based optimization problems.

Interview Questions on This Problem

Q1Why does sorting the matrix values enable O(log N) query time for the sum of elements greater than K?

Sorting arranges values in monotonic order, so the boundary where values exceed K can be found with binary search. Once the index is known, a suffix‑sum array gives the total in constant time.

Q2What is the trade‑off between using a counting sort versus a comparison sort for this problem?

Counting sort runs in O(N + R) where R is the value range, offering linear time when R is small, but it uses O(R) extra space. Comparison sort is O(N log N) with O(N) space, independent of value magnitude.

Q3How would you adapt the solution if you needed to answer Q independent queries for different K values?

Pre‑process once: sort the values and build a suffix‑sum array. Each query then runs binary search in O(log N) and retrieves the sum in O(1), giving total O(N log N + Q log N).

Examples

Example 1

Input

2 3 5
1 6 3
7 2 9

Output

22

Explanation: The grid contains six numbers: 1,6,3,7,2,9. Elements greater than K=5 are 6,7,9. Their sum is 6+7+9 = 22.

Example 2

Input

3 2 0
-1 2
3 -4
5 6

Output

16

Explanation: Elements larger than 0 are 2,3,5,6. Adding them yields 2+3+5+6 = 16.

Example 3

Input

1 5 10
11 9 12 10 15

Output

38

Explanation: Numbers exceeding K=10 are 11,12,15. Their sum is 11+12+15 = 38.

Constraints

  • 1 <= n, m <= 10^3
  • 1 <= n * m <= 10^5
  • -10^9 <= grid[i][j] <= 10^9
  • -10^9 <= K <= 10^9

Optimal Approach & Strategy

Flatten, sort, build suffix sums, binary‑search the first > K, then read the pre‑computed sum.

Brute Force Approach

Iterate over every cell, add the value to the answer if it is > K.

Verified Code Solutions

JavaScript Solution
Time: O(N log N)
function solution(metrics, K) { return metrics.filter(m => m > K).reduce((a, b) => a + b, 0); }

Asked in Top Tech Interviews

GoogleAmazonMicrosoft

Solve in Interative Editor

Ready to test your code? Open our built-in compiler, run custom test suites, and see detailed complexity analysis reports instantly.