Benchmark · coding
Codeforces (Elo)
يقيس Codeforces (Elo) قدرة النموذج على البرمجة التنافسية بجعله يحل مسائل مسابقات محدّدة بوقت، ويُعبَّر عن النتيجة بتصنيف Codeforces Elo (نحو 0–4000، حيث يُعدّ ما يقارب 2000 فأكثر مستوى قويًا).
اقرأ المزيد
- مثال
- المسألة النموذجية هي مسألة خوارزمية محدّدة بوقت — مثلًا قراءة مدخلات المسألة وطباعة الإجابة الصحيحة ضمن حدود صارمة للوقت والذاكرة، باستخدام تقنيات مثل البحث في الرسوم البيانية (graph search) أو البرمجة الديناميكية أو الخوارزميات الجشعة (greedy).
- طريقة التقييم
- النتيجة رقم Elo واحد يُحسب من عدد مسائل المسابقات التي يحلّها النموذج ومدى صعوبتها، ويوضع على مقياس التصنيف نفسه الذي يستخدمه Codeforces للمتسابقين البشر.
- التحقق
- يُقيَّم كل حلّ مُرسَل تلقائيًا: يُجمَّع الكود (compile) ويُشغَّل على مجموعة مخفية من حالات الاختبار، ولا يُحتسب محلولًا إلا إذا أنتج المخرجات الصحيحة ضمن حدود الوقت والذاكرة.
- لماذا يهم
- يعكس الاستدلال الخوارزمي متعدد الخطوات والقدرة على كتابة كود صحيح وفعّال ضمن قيود، ويُسقِط مهارة البرمجة لدى النموذج على مقياس تصنيف يفهمه الناس مسبقًا.
مثال محلول
«Codeforces (Elo)» يعطي النموذج مسائل برمجة تنافسية ويعبّر عن قوته كتقييم Elo على المقياس نفسه الذي يحصل عليه البشر في الموقع. مثال سهل تمثيلي (Div. 2 A، ~800): «يُعطى لك t من حالات الاختبار؛ كل واحدة تعطي n ومصفوفة a_1…a_n. في عملية واحدة تختار i≠j وتنفّذ a_i−=1، a_j+=1. اطبع YES إذا استطعت جعل جميع العناصر متساوية، وإلا NO.» بالنسبة للمدخل `2 / 3 / 1 2 3 / 2 / 1 2` يكون الخرج المتوقع `YES` ثم `NO`. الحيلة أن العملية تحافظ على المجموع الكلي S=Σa_i، لذا يمكن جعل العناصر متساوية (كل منها S/n) إذا وفقط إذا كان n يقسم S: المصفوفة [1,2,3] مجموعها S=6 يقبل القسمة على 3 → YES، بينما [1,2] مجموعها S=3 لا يقبل القسمة على 2 → NO. الحل الصحيح يقرأ من stdin ويطبع هذه الإجابات ويجب أن يجتاز جميع الاختبارات المخفية ضمن حد الوقت؛ ويُستنتج Elo للنموذج من صعوبة المسائل التي يحلها بثبات.
لا توجد درجات موثّقة لهذا الـ Benchmark بعد.