ধরুন আমাদের n উপাদান সহ একটি অ্যারে A আছে। আমাদের কিছু অ-শূন্য পূর্ণসংখ্যা d খুঁজে বের করতে হবে, যেমন অ্যারের প্রতিটি সংখ্যাকে d দ্বারা ভাগ করার পরে, অ্যারেতে উপস্থাপিত ধনাত্মক মানগুলির সংখ্যা অ্যারের আকারের অর্ধেকের চেয়ে বেশি বা সমান। . যদি d এর একাধিক মান থাকে যা শর্ত পূরণ করে। যদি একাধিক উত্তর থাকে, তাদের যেকোনো একটি ফেরত দিন।
সুতরাং, যদি ইনপুটটি A =[10, 0, -7, 2, 6] এর মত হয়, তাহলে আউটপুট হবে 4, কারণ এখানে n =5, তাই আমাদের কমপক্ষে $\mathrm{\left \lceil 5/ প্রয়োজন বিভাজনের পর 2\right \rceil=3}$ উপাদান। d =4 হলে, বিভাজনের পরে অ্যারে হবে [2.5, 0, −1.75, 0.5, 1.5], যেখানে 3টি ধনাত্মক সংখ্যা 2.5, 0.5 এবং 1.5।
পদক্ষেপ
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
z :=0, f :=0n :=Afor ইনিশিয়ালাইজের আকার i :=0, যখন i0, তারপর:(1 দ্বারা z বাড়ান) যদি a <0, তারপর:(f 1 দ্বারা বাড়ান) যদি 2 * z>=n, তারপর:ফেরত দিন অন্যথায় যখন 2 * f>=n, তারপর:ফেরত দিন -1 অন্যথায় 0 ফেরত দিন পূর্বে> উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
#includeনেমস্পেস ব্যবহার করে std;int solve(vector A){ int z =0, f =0; int n =A.size(); জন্য (int i =0; i 0) z++; যদি (a <0) f++; } if (2 * z>=n) রিটার্ন 1; else if (2 * f>=n) রিটার্ন -1; অন্যথায় রিটার্ন 0;}int main(){ vector A ={10, 0, -7, 2, 6}; cout < ইনপুট
{ 10, 0, -7, 2, 6 }আউটপুট
1