আমাদের দৈর্ঘ্যের একটি অ্যারে দেওয়া হয়েছে যেটিতে শুধুমাত্র 0 এবং 1 রয়েছে। মান 1 পশ্চিম দিকে যাচ্ছে একটি গাড়ী এবং মান 0 পূর্ব দিকে যাচ্ছে একটি গাড়ী প্রতিনিধিত্ব করে।
কার A এবং কার B এর একটি জোড়া যদি 0<=A
আসুন উদাহরণ দিয়ে বুঝতে পারি
ইনপুট − arr[] ={1,0,1,0,1}
আউটপুট − পাসিং গাড়ি জোড়ার সংখ্যা হল:3
ব্যাখ্যা − (0,1) জোড়া যেখানে 0-এর সূচক 1-এর চেয়ে কম তা হল − (arr[1],arr[2]), (arr[1],arr[4]), (arr[3],arr [৪])
ইনপুট − arr[] ={1,0,0,0,0}
আউটপুট − পাসিং গাড়ি জোড়ার সংখ্যা হল:0
ব্যাখ্যা − (0,1) এর কোন জোড়া নেই যেখানে 0 এর সূচক 1 এর কম।
নিম্নলিখিত প্রোগ্রামে ব্যবহৃত পদ্ধতি
আমরা দুটি পন্থা ব্যবহার করব। লুপের জন্য দুটি ব্যবহার করে প্রথম নিরীহ পদ্ধতি। অ্যারেটি অতিক্রম করা শুরু করুন, ঠিক যখন 0 সেই বিন্দু থেকে আবার শেষ পর্যন্ত ট্র্যাভার্স অ্যারের সম্মুখীন হয় এবং 1 এর সম্মুখীন হলে সংখ্যা বৃদ্ধি করুন৷
-
0's এবং 1's সম্বলিত একটি অ্যারে arr[] নিন।
-
ফাংশন count_cars(int arr[], int size) ইনপুট হিসাবে অ্যারে এবং দৈর্ঘ্য নেয় এবং পাসিং গাড়ির গণনা ফেরত দেয়।
-
0 হিসাবে প্রাথমিক গণনা নিন।
-
সূচী i=0 থেকে i
পর্যন্ত ট্রাভার্স অ্যারে -
যদি arr[i] 0 হয়, তাহলে সূচী j=i+1 থেকে j<দৈর্ঘ্যে আবার অ্যারে ট্র্যাভার্স করুন।
-
প্রতিটি arr[j]-এর জন্য পেয়ার হিসাবে 1 বৃদ্ধির গণনা (arr[i],arr[j]) হল (0,1) এবং i
-
শেষ পর্যন্ত আমরা মোট গণনা পাব।
-
ফলাফল হিসাবে রিটার্ন গণনা।
দক্ষ পদ্ধতি
এই পদ্ধতিতে আমরা শেষ থেকে অ্যারেটি অতিক্রম করব। শেষ থেকে সমস্ত 1 গণনা করুন। প্রতিটি প্রথম 0 এর জন্য (শেষ থেকে), না। জোড়ার গণনা হবে 1 এর টেম্প।
-
0's এবং 1's সম্বলিত একটি অ্যারে arr[] নিন।
-
ফাংশন count_cars(int arr[], int size) ইনপুট হিসাবে অ্যারে এবং দৈর্ঘ্য নেয় এবং পাসিং গাড়ির গণনা প্রদান করে।
-
0 হিসাবে প্রাথমিক গণনা নিন।
-
সাইজ>=1.
পর্যন্ত লুপ ব্যবহার করে শেষ থেকে ট্রাভার্স অ্যারে -
যদি arr[size-1] 1 হয়, এখন পর্যন্ত পাওয়া 1 এর সংখ্যার জন্য পরিবর্তনশীল তাপমাত্রা বৃদ্ধি করুন।
-
অন্যথায় এটি 0 (যার একটি সূচক সমস্ত 1 এর থেকে কম যা রেম্প)। জোড়া টেম্প হবে. গণনা =গণনা + তাপমাত্রা সেট করুন।
-
পরবর্তী উপাদানের জন্য আকার হ্রাস করুন।
-
শেষ পর্যন্ত আমরা মোট গণনা পাব।
-
ফলাফল হিসাবে রিটার্ন গণনা।
উদাহরণ (নিষ্পাপ পদ্ধতি)
#include<bits/stdc++.h> using namespace std; int count_cars(int arr[], int size){ int count = 0; for (int i=0; i<size-1; i++){ if(arr[i] == 0){ for (int j=i+1; j<size; j++) if (arr[j]==1){ count++; } } } return count; } int main(){ int arr[] = {1, 1, 0, 0, 1}; int size = sizeof(arr)/sizeof(arr[0]); cout<<"Count of passing car pairs are: "<<count_cars(arr, size); return 0; }
আউটপুট
যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট −
উৎপন্ন করবেCount of passing car pairs are: 2
উদাহরণ (দক্ষ পদ্ধতি)
#include<bits/stdc++.h> using namespace std; int count_cars(int arr[], int size){ int count = 0; int temp = 0; while (size >= 1){ if (arr[size-1] == 1){ temp++; } else{ count = count + temp; } size--; } return count; } int main(){ int arr[] = {1, 1, 0, 1, 1}; int size = sizeof(arr)/sizeof(arr[0]); cout<<"Count of passing car pairs are: "<<count_cars(arr, size); return 0; }
আউটপুট
যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট −
উৎপন্ন করবেCount of passing car pairs are: 2