ধরুন আমাদের একটি m × n মেট্রিক্স M আছে যা সম্পূর্ণ ০ দিয়ে আরম্ভ করা হয়েছে এবং আমাদের কাছে অনেকগুলো আপডেট অপারেশন রয়েছে। অপারেশনগুলো একটি ২D অ্যারে দ্বারা প্রতিনিধিত্ব করা হয়, যেখানে প্রতিটি অপারেশন দুটি ধনাত্মক পূর্ণসংখ্যা x এবং y দ্বারা নির্দেশিত হয়। এর অর্থ হলো M[i][j]-এ ১ যোগ করা হবে এমন সব i এর জন্য যারা ০ থেকে x-1 পর্যন্ত এবং সব j এর জন্য যারা ০ থেকে y-1 পর্যন্ত। সমস্ত অপারেশন সম্পন্ন করার পর মেট্রিক্সে সর্বোচ্চ পূর্ণসংখ্যার মান কতবার রয়েছে তা বের করতে হবে।
উদাহরণস্বরূপ, m = 3, n = 3 এবং operations = [[2,2],[3,3]] হলে আউটপুট হবে 4।
প্রক্রিয়া
প্রাথমিক মেট্রিক্স:
| 0 | 0 | 0 |
| 0 | 0 | 0 |
| 0 | 0 | 0 |
[2,2] অপারেশন করার পর:
| 1 | 1 | 0 |
| 1 | 1 | 0 |
| 0 | 0 | 0 |
[3,3] অপারেশন করার পর:
| 2 | 2 | 1 |
| 2 | 2 | 1 |
| 1 | 1 | 1 |
সমাধানের ধাপসমূহ
- minR := m, minC := n নিন।
- প্রতিটি অপারেশন op এর জন্য:
- minR := min(minR, op[0])
- minC := min(minC, op[1])
- ফলাফল: minR * minC রিটার্ন করুন।
C++ কোড উদাহরণ
#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
int maxCount(int m, int n, const vector<vector<int>>& ops) {
int minR = m;
int minC = n;
for (const auto& op : ops) {
minR = min(minR, op[0]);
minC = min(minC, op[1]);
}
return minR * minC;
}
};
int main() {
Solution ob;
vector<vector<int>> v = {{2,2},{3,3}};
cout << ob.maxCount(3, 3, v);
return 0;
}
ইনপুট
3, 3, {{2,2},{3,3}}
আউটপুট
4