ধরুন আমাদের n x 4 আকারের একটি 2d অ্যারে আছে। বিবেচনা করুন n ছাত্র আছে এবং তাদের আইডি 0 থেকে n-1 থেকে শুরু হচ্ছে। তাদের প্রত্যেকের ইংরেজি, ভূগোল, গণিত এবং ইতিহাসের চারটি স্কোর রয়েছে। সারণীতে, শিক্ষার্থীদের স্কোরের যোগফল কমিয়ে বাছাই করা হবে। যদি দুই বা তার বেশি ছাত্রের সমষ্টি একই থাকে, তাহলে এই ছাত্রদের তাদের আইডি বাড়িয়ে সাজানো হবে। আমাদের সেই ছাত্রের আইডি খুঁজে বের করতে হবে যার আইডি 0।
সুতরাং, যদি ইনপুট মত হয়
100 | 98 | 100 | 100 |
100 | 100 | 100 | 100 |
90 | 99 | 90 | 100 |
100 | 98 | 60 | 99 |
তাহলে আউটপুট হবে 2
পদক্ষেপ
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
n := size of table r := 1 p := table[0, 0] + table[0, 1] + table[0, 2] + table[0, 3] for initialize i := 1, when i < n, update (increase i by 1), do: if table[i, 0] + table[i, 1] + table[i, 2] + table[i, 3] > p, then: (increase r by 1) return r
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
#include <bits/stdc++.h> using namespace std; int solve(vector<vector<int>> table){ int n = table.size(); int r = 1; int p = table[0][0] + table[0][1] + table[0][2] + table[0][3]; for (int i = 1; i < n; i++){ if (table[i][0] + table[i][1] + table[i][2] + table[i][3] > p) r++; } return r; } int main(){ vector<vector<int>> table = { { 100, 98, 100, 100 }, { 100, 100, 100, 100 }, { 90, 99, 90, 100 }, { 100, 98, 60, 99 } }; cout << solve(table) << endl; }
ইনপুট
{ { 100, 98, 100, 100 }, { 100, 100, 100, 100 }, { 90, 99, 90, 100 }, { 100, 98, 60, 99 } }
আউটপুট
2