मान लीजिए कि हमारे पास 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