একটি অ্যারে A দেওয়া আছে n উপাদানের সাথে। একটি কোডিং কন্টেস্টে মোট n জন ছাত্র অংশ নিবে। শুরুতে সবার কিছু পজিটিভ রেটিং (ইন্টিজার) আছে। A[i] = i-তম ছাত্রের রেটিং। কন্টেস্ট শেষে সবার কিছু পজিটিভ ইন্টিজার পজিশন হবে। রেটিং অনুযায়ী পজিশন বরাবর করা হবে: যদি ছাত্র A-এর রেটিং ছাত্র B-র চেয়ে স্ট্রিক্টলি কম হয়, তবে A-র পজিশন B-র চেয়ে স্ট্রিক্টলি বড় হবে। কন্টেস্ট শেষে প্রতিটি ছাত্রের পজিশন বের করতে হবে।
উদাহরণ
A = [3, 5, 3, 4, 5] → আউটপুট: [4, 1, 4, 3, 1]
ব্যাখ্যা: ২য় ও ৫ম ছাত্র সর্বোচ্চ রেটিং পেয়ে ১ম পজিশন শেয়ার করেছে, ৪র্থ ছাত্র ৩য় পজিশন, ১ম ও ৩য় ছাত্র ৪র্থ পজিশন শেয়ার করেছে।
সমাধানের ধাপসমূহ
n := A-এর সাইজ
for i := 0 to n-1:
d := 1
for j := 0 to n-1:
if A[j] > A[i]: d++
print 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,