ধরা যাক n명의 স্টুডেন্টের ৫ বিষয়ের স্কোর দেওয়া আছে। প্রথমটি কমালের, বাকি n-1টি অন্যরা। কমালের চেয়ে বেশি টোটাল স্কোর পাওয়া স্টুডেন্টের সংখ্যা বের করতে হবে। Student ক্লাসে Input() এবং calculateTotalScore() মেথড থাকবে।
উদাহরণস্বরূপ, n=4, scores=[[25,45,32,42,30],[22,25,41,18,21],[37,42,48,45,25],[36,48,35,40,30]] হলে আউটপুট ২ (শেষ দুজন কমালের চেয়ে বেশি)।
সমাধানের ধাপসমূহ
- Student অবজেক্টের অ্যারে s[n] তৈরি করুন
- প্রতিটি i-এর জন্য scores[i] s[i]-এ লোড করুন
- kamal_sc := s[0].calculateTotalScore()
- count := ০
- i=1 থেকে n-1 পর্যন্ত: যদি s[i].calculateTotalScore() > kamal_sc হয় তবে count++
- count রিটার্ন করুন
উদাহরণ
নিচের ইমপ্লিমেন্টেশনটি দেখুন:
#include <iostream> #include <vector> using namespace std; class Student{ public: int score[5]; void input(vector<int> v){ for(int i = 0; i < 5; i++) score[i] = v[i]; } int calculateTotalScore(){ int res = 0; for(int i = 0; i < 5; i++) res += score[i]; return res; } }; int main(){ int n = 4; vector<vector<int>> scores = {{25,45,32,42,30},{22,25,41,18,21},{37,42,48,45,25},{36,48,35,40,30}}; Student *s = new Student[n]; for(int i = 0; i < n; i++){ s[i].input(scores[i]); } int kamal_sc = s[0].calculateTotalScore(); int count = 0; for(int i = 1; i < n; i++){ int total = s[i].calculateTotalScore(); if(total > kamal_sc){ count++; } } cout << count; } ইনপুট
4, {{25,45,32,42,30}, {22,25,41,18,21}, {37,42,48,45,25}, {36,48,35,40,30}}আউটপুট
2