تفاصيل العمل

لغة برمجة c++ على clion

في المنظمة الكبيرة، يعرف الجميع الكثير من الزملاء. ومع ذلك، لا يتم الاحتفاظ بعلاقات الصداقة إلا مع عدد قليل منهم، الذين يتم إخبارهم بالأخبار.

لنفترض أنه كلما علم أحد الموظفين بخبر ما، فإنه يخبر به جميع أصدقائه في اليوم

التالي. لذا، في اليوم

الأول، يخبر مصدر المعلومات أصدقائه؛ وفي اليوم

الثاني، يخبر أصدقاء المصدر بها أصدقائهم؛ وفي اليوم

الثالث، يخبر أصدقاء أصدقاء المصدر بها أصدقائهم؛ وهكذا.

الهدف هو تحديد:

• أقصى حجم للطفرة اليومية، وهو أكبر عدد من الموظفين الذين، في يوم واحد،

يسمعون الخبر لأول مرة؛ و

• أول يوم للطفرة، وهو اليوم الأول الذي يحدث فيه أقصى حجم للطفرة اليومية.

اكتب برنامجًا، مع مراعاة علاقات الصداقة بين الموظفين ومصدر الخبر، يحسب الحد الأقصى لحجم الازدهار اليومي وأول يوم ازدهار لعملية نشر المعلومات تلك

خطوات حل المشكلة:

تمثيل العلاقات:

نقوم بتمثيل علاقات الصداقة بين الموظفين باستخدام قائمة تجاور (adjacency list). في هذه القائمة، يمثل كل موظف عقدة، والعلاقة بين الموظفين تمثل حافة تربط بين العقد.

تنفيذ البحث (BFS):

نبدأ خوارزمية البحث بعرض الشبكة (Breadth-First Search) من الموظف الذي يعرف الخبر أولاً (مصدر الخبر).

في كل مستوى من البحث (يعبر عن يوم جديد)، نقوم بتحديد عدد الموظفين الجدد الذين يتلقون الخبر للمرة الأولى.

تتبع الطفرة اليومية:

إذا كانت عدد المتلقين الجدد في اليوم الحالي أكبر من الأعداد السابقة، نقوم بتحديث الحد الأقصى لعدد الطفرة اليومية واليوم الذي حدثت فيه الطفرة.

استخراج النتائج:

بعد انتهاء BFS، نقوم بطباعة أقصى حجم للطفرة اليومية وأول يوم حدثت فيه الطفرة.

إذا لم تحدث طفرة يومية، يعرض البرنامج رسالة توضح ذلك.

ملفات مرفقة

بطاقة العمل

اسم المستقل
عدد الإعجابات
0
تاريخ الإضافة
تاريخ الإنجاز
المهارات