मान लीजिए कि हमारे पास n तत्वों के साथ एक सरणी A है। एक कोडिंग प्रतियोगिता में, कुल n छात्र भाग लेंगे, और शुरुआत से पहले, उनमें से प्रत्येक के पास कुछ सकारात्मक रेटिंग (पूर्णांक) है। ए [i] ith छात्र की रेटिंग का प्रतिनिधित्व करता है। प्रतियोगिता समाप्त होने के बाद, प्रत्येक छात्र कुछ सकारात्मक पूर्णांक स्थिति के साथ समाप्त होगा। हम उम्मीद कर रहे हैं कि छात्र अपनी रेटिंग के अनुसार जगह लेंगे। अगर छात्र ए की रेटिंग छात्र बी से सख्ती से कम है, तो ए को बी से सख्ती से बड़ा स्थान मिलेगा। हमें प्रतियोगिता के अंत में स्थिति ढूंढनी होगी।
इसलिए, यदि इनपुट ए =[3, 5, 3, 4, 5] की तरह है, तो आउटपुट [4, 1, 4, 3, 1] होगा क्योंकि दूसरे और 5 वें छात्र उच्चतम रेटिंग के साथ पहला स्थान साझा करते हैं, चौथा छात्र तीसरे स्थान के साथ अगला है, पहला और तीसरा छात्र चौथा स्थान साझा कर रहा है।
कदम
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
n := size of A for initialize i := 0, when i < n, update (increase i by 1), do: d := 1 for initialize j := 0, when j < n, update (increase j by 1), do: if A[j] > A[i], then: (increase d by 1) cout << d << ", "
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
#include <bits/stdc++.h> using namespace std; void solve(vector<int> A){ int n = A.size(); for (int i = 0; i < n; i++){ int d = 1; for (int j = 0; j < n; j++){ if (A[j] > A[i]) d++; } cout << d << ", "; } } int main(){ vector<int> A = { 3, 5, 3, 4, 5 }; solve(A); }
इनपुट
{ 3, 5, 3, 4, 5 }
आउटपुट
4, 1, 4, 3, 1,