Let's Learn it Together !

ِAn educational blog from FCIS'2011 students ..


يعتبر برنامج PC^2 أهم ما فى مسابقات ال ACM, وذلك لأن عن طريقه يمكن أدارة المسابقة من كافة النواحى, ويعتبر قناة الوصل الوحيدة بين المتسابقين "Teams" والحكّام "Judges".

وفى هذا الموضوع سنتناول الاتى :
  • كيفية الدخول الى البرنامج.
  • ارسال الحلول "Submit".
  • نتائج الحلول "Run Results".
  • التوضيحات والأسألة "clarification".
  • تغير ال Password.
  • ال Score Board.



كيفية الدخول الى البرنامج :


1- ادخل على الجزء المخصص لل Teams من البرنامج.


2- أكتب أسم ال Team وال Password, غالبا ما يكون اسم ال team هو "Team + Number", سيعطى لك ورقة بها اسم ال Team وال Password.



ارسال الحلول"Submit" :



  1. تأكد من أسم فريقك, فى هذا المثال اسم الفريق "FCIS Champion".
  2. عداد تنازلى يحسب الوقت المتبقى من المسابقة, تأكد من أنك تتابعه جيدا, لأن فى تلك المسابقات الوقت من ذهب.
  3. Problem : أذا أردت أن ترسل حلّ لمسألة, أختار اسم المسألة من هنا.
  4. Language : اختار لغة البرمجة التى ترسل بها كود المسألة, اللغات المتاحة فى الغالب هى C, C++, Java.
  5. Main File : اختار ال File الذى يحتوى على كود المسألة.
  6. Test : قبل أن ترسل الكود تأكد من أنه يعمل ولا يحتوى على أى Compile Error, ولكن أحيانا هذه الخاصية لا تعمل فى بعض المسابقات.
  7. Submit : أرسل الكود الى ال Judge.
بعد عمل Submit ستظهر لك رسالة تاكيدية, بها اسم ال Team, وأسم ال Problem, وPath ال File الذى يحتوى على الكود, ولغة البرمجة التى أرسلت بها الكود.


تأكد أن كل البيانات صحيحة ثم Submit.

بعد ارسال الحلّ ستصل لك رسالة تفيد بأنك قد أرسلت الكود ووصل الى ال Judge بصورة صحيحة.



اذا لم تصلك هذه الرسالة, فتأكد من أن الكود قد تم ارساله من "Runs".


اذا تم ارسال الكود فستجد اسم ال Problem , وستجد ال Status لها New, وهذا يعنى أنك أرسلت المسألة ولم يصلك حتى الأن رد اذا كانت المسألة صحيحة أم لا.

قائمة Run ستجد بها نتائج كل الحلول التى أرسلتها أثناء المسابقة, وبها أيضا الوقت الذى أرسلتها به.


نتائج الحلول"Run Results" :


عندما ينتهى ال Judge من معرفة اذا كان الحل الذى أرسلته صحيح أم لا, بإدخال File به Input معيّن لكودك, ومقارنة ال Output الخارج من الكود الذى أرسلته, بال Output الصحيح, يرسل لك رسالة بها نتيجة الحلّ الذى أرسلته.

"Yes" فقط هى الرسالة الوحيدة التى تعنى أن الكود الذى أرسلته صحيح.



التوضيحات والأسألة "Clarification" :


أثناء المسابقة, إذا أردت أن تستفسر عن أى شئ فى أى مسألة, أو أن تسأل سؤالا تقنيا, أو أى سؤال آخر, يمكنك أرسال Clarification الى ال Judges, وهم سوف يجيبوا على استفسارك.

1- اختر Request Clar.


2- اكتب سؤالك واختار اسم ال Problem إذا كان سؤالك حول مسألة معينة, أو اختار General اذا كان سؤالك عام.
واذا تم الرد على سؤالك سيتم ارسال رسالة لك مثل رسالة ال Run Result.



لأظهار أى Clarification أضغط View Clarification.




تغير ال Password :


اذا أردت تغير ال Password المستخدمة لدخول فريقك الى البرنامج يمكنك تغيرها من Settings.


ولكن لا ننصح بهذه الخطوة, لأنها قد تتسبب فى بعض المشاكل اذا نسيت ال Password الجديد.



ال Score Board :


صفحة بها ملخص لنتائج الفرق المشتركة فى المسابقة, وتكون مرتبة حسب الأكثر حلاً, ثم الأقل وقتا, وهذه الصفحة تتجدد تلقائيا أول 4 ساعات من المسابقة, والساعة الخامسة والأخيرة تسمى "Freeze Hour", وفيها لا تتجدد ال Score Board.

A, B, C, ..... , H ترمز الى أرقام المسائل, وبجوار كل فريق تجد عدد المسائل الذى قام بحلّها (Solved), والوقت الذى استغرقه فى حلّ كل المسائل (Time), وتحت كل مسألة يُكتب (عدد مرات ارسال الحلّ / الوقت الذى استغرقه فى الحلّ).



يتم حساب الوقت لكل مسألة من بداية المسابقة, فمثلا فريق CSC06 قاموا بحلّ المسألة E بعد 84 دقيقة من بداية المسابقة, ثم C بعد 225 دقيقة من بداية المسابقة.

فى حالة ارسال حلّ خاطئ مرة أو أكثر, وبعد ذلك مرة صحيحة, فأن وقت حلّ المسألة يضاف اليه Penalty Time ويكون 20 دقيقة زائدة عن كل Submission خاطئ, مثال على ذلك فرق CSC06 قاموا بارسال المسألة G مرة خاطئة والثانية صحيحة, وأرسلوا الحلّ الصحيح بعد 140 دقيقة من بداية المسابقة, يضاف عليهم 20 دقيقة Penalty, اذن الوقت المحتسب للمسألة 160 دقيقة.

لاحظ أن الوقت الكلّى للTeam يضاف اليه فقط وقت المسائل التى حصل ال Team بها على Yes.

ال Score Board مفيدة للغاية, يمكنك من خلالها معرفة المسائل التى قام بحلّها كل الفرق, وغالبا ما تكون المسائل الأكثر سهولة هى الأكثر حلاً.


ملحوظة : هنا نسخة PDF من المقال.


فى هذا الموضوع سوف نتناول كيفية التعامل مع برنامج Eclipse, وهو ال IDE الذى يكون متاح فى مسابقات ال ACM للغتى C/C++ لأنه مجانى (فى acm ANARC 2008 تم استخدام Microsoft Visual C++ 2008 Express Edition لأنه أيضا مجانى ).

وهذا الموضوع مقسم كالاتى :
  • كيف أبدأ ؟
  • بعض المشاكل وكيفية حلّها.
  • كيفية قراءة ال Input من File.
  • بعض الملاحظات.
  • بعض ال Shortcuts.

ملحوظة : بعض الصور فى هذا الموضوع مصغرة, أضغط على أى صورة لتكبيرها

أولا كيف أبدأ ؟


1- عمل Project جديد.



2- أكتب اسم ال Project وأختار "Hello World C++ Project" من ال Project Type.




3- بعد كتابة الكود أعمل Build ثم Run.



ثانيا بعض المشاكل وكيفية حلّها:


هذه الرسالة تظهر كثيرا عند التعامل مع البرنامج وخصوصا عند محاول عمل Run للكود.




ويكون سبب هذه المشكلة هو عمل Run أكثر من مرة بدون أغلاق ال EXEs الناتجة من كل عملية Run.
ويمكن حلّ هذه المشكلة عن طريق أغلاق جميع ال EXEs المفتوحة, ويوجد طريقيتن لأغلاق الEXEs, والتالية هى الأسهل.

اختار من اليمين فى الأعلى كلمة Debug



سنلاحظ أن هناك قائمة بها جميع ال EXEs المفتوحة, وفى الصورة بالأسفل يوجد 4


الحل هو اختيار كل EXE وأغلاقه بالضغط على علامة Stop, ثم عمل Run مرة أخرى للبرنامج وسيعمل ان شاء الله بدون مشاكل.


ثالثا كيفية قراءة ال Input من File :


فى مسابقات ال ACM يجب أن يكون الكود الذى ترسله لل Judge عبر برنامج PC^2 يقرأ ال Input من File و إلا فأنك لن تحصل على Yes أبدا.

فى البداية يجب أن تضيف ملف txt. أو in. بجوار ال EXE , لأن ال Judge عندما يجرب الكود الذى ترسله يضع ال Input File بجوار ال EXE.

ويمكنك اضافة File لقراءة ال Input منه بطريقة سهلة عن طريق البرنامج.



يجب أن يكون أسم ال File مطابق للأسم الذى يطلبه منك فى المسألة, وأن يكون الامتداد أيضا مطابقا وفى الغالب يكون in. .



وبذلك يمكننا فتح ال Input File من البرنامج بطريقة سهلة جدا بدون الأضطرار للتعامل مع ال Windows أبدا, أو الذهاب ل Path معين والبحث عن ال File.



الان نحن لدينا File بجوار ال EXE يمكننا كتابة ال Input فيه, يتبقى الكود الذى سيقرأ من ذلك ال File.

freopen("FileName.in", "r", stdin);

FileName.in : اسم ال File مع الامتداد الصحيح.
"r" : تشير الى أننا هنا سنقوم بالقراءة من ال File, فى حالة الكتابة ستكون"w".
stdin : ترمز الى Standard Input, وفى حالة الكتابة فى ال File تكون stdout.



رابعا بعض الملاحظات:


  • ال Console فى ال Eclipse لونه أبيض, ويكون ملحق بالبرنامج فى الأسفل بجوار مربع ال errors .
  • أذا قرأت من File فأن ال Input لن يظهر فى ال Console .

  • أذا أردت أظهار ال Project Explorer اتبع الاتى:
Windows --> Show View --> Others --> General --> Project Explorer.


خامسا بعض ال Shortcuts:

  • Build : Ctrl + B.
  • Run : Ctrl + F11.
  • Auto Complete : Ctrl + Space.


ملحوظات:
  • يمكنك تحميل نسخة من ال Eclipse من هنا أو هنا أو من موقع البرنامج.
  • يجب بعد تحميل ال Eclipse تحميل الملفين MinGW And MSYS من هنا ثم عمل Setup لهما كى يعمل ال Eclipse مع ال C++.
  • هنا نسخة PDF من المقال.




أحد أشهر مواقع ال Online Judge ... ويحتوى على عدد كبير جدا من المسائل "Problems" ... وهو أكثر المواقع ارتباطا بال ACM حيث أن أغلب ال ACM Contests التى تقام وخاصة ال Worled Final ينصح منظموها بالتدريب على هذا ال Site, هذا بخلاف الكتب التى تشرح أنواع المسائل المختلفة مثل كتاب Programming Challenge, وهذا الكتاب يشرح ال Algorithm ويعطى كود مكتوب بال C ويترك لك بعض المسائل للتدريب, تلك المسائل موجودة على ال UVa.

فى البداية قم بالتسجيل فى الموقع ... فى خانة Online Judge ID أكتب 00000.



أولا لوحة التحكم الرئيسية :

ستجدها فى اليسار .

  1. Quick Submit : اذا أردت ان ترسل حل لمسألة تعرف ال ID الخاص بها بدون ان تذهب الى المسألة.

  2. My Submission : بها جميع ال Submissions التى أرسلتها للموقع ونتائجها بالتاريخ والوقت.

  3. My statistics : لمعرفة عدد وأرقام المسائل التى قمت بحلها وتاريخ أخر Submission أرسلته وعدد ال Submission, نستطيع ان نقول ان هذا هو ال Profile.

  4. Browse Problems : من هنا تستطيع الدخول الى المسائل.

  5. Contests : اذا كانت هناك مسابقات Online تستطيع المشاركة بها.

  6. Site statistics : تستطيع منها معرفة نتيجة أخر 50 Submission و الترتيب العام لأعضاء الموقع و نتائج العام الماضى.


  7. أذا أردت البحث عن أى مسألة يمكنك البحث من هنا.




ثانيا البدء بالحل :

أضغط على Problems واختار أحد ال Titles, أنا شخصيا أستخدم Contest Volumes, ولكن لا تنخدع فالمسائل غير مرتبة من الأسهل للأصعب.

تحذير : أول مسألة فى ال Problem Set Volumes اسمها "The 3n + 1 problem - 100" لا تبدأ بحلّ هذه المسألة, أغلب من يبدأ بحلّ مسائل على هذا الموقع يبدأ بها لأنها أول مسألة, البعض يفترض أن أول مسألة أسهل مسألة, ولكن الحقيقة غير ذلك تماما, أنا شخصيا أحتجت الى 3 شهور كى أستطيع الحصول على Accepted فى هذه المسألة, وذلك ليس لصعوبتها البالغة, ولكنها تحتاج لبعض الخبرة ستكتسبها مع الوقت.



المسألة التى قمت بحلّها يكون بها لون أخضر مثل مسألة Longest Common Subsequence فى الصورة السابقة .
كلما كان ال (Total Submission \ Solving) أكبر كلما كانت المسألة أسهل وقابلة للحلّ أكثر وخصوصا اذا كان عدد الأعضاء الذين حاولوا حلّ هذه المسألة أكبر.

افتح أى مسألة وأقرأها جيدا وابدأ بالحل.

  1. Submit : اذا انتهيت من كتابة الكود وأردت أن ترسل الحلّ لتعرف النتيجة.

  2. Problem stats : اذا اردت أن تلقى نظرة على نتائج أفضل 20 حل لهذه المسألة.

  3. فى هذه الخانة يظهر الوقت الذى يجب الا يزيد عنه البرنامج الذى كتبته.

بعد ارسال الحل, لمعرفة النتيجة أضغط على My Submission لمعرفة نتيجة الحلّ, ويمكنك أيضا مشاهدة Last 50 Submission.



ثالثا بعض مميزات الموقع :

  1. لا يمكنك الدخول الى Profile أى شخص مسجل فى الموقع, ولا تستطيع معرفة المسائل التى قام بحلّها أصدقائك, ولكن كيف تكون هذه ميزة ؟؟؟ فى الواقع هى ليست ميزة ولكن يمكننا التغلب عليها.

    كان الموقع فى البدابة يتيح هذه الخاصية, اذا ضغطت على اسم العضو كان يظهر لك Profile ذلك العضو, أما الان فاذا ضغطت على اسم أى عضو فستظهر لك تلك الرسالة .
    فلنفترض اننا لدينا ال Site statistics - > Last 50 Submissions التالية

    لو ضغطنا على العضو aka فسوف تظهر الرسالة السابقة .
    ولكى نتغلب على تلك الرسالة لاحظ معى الأتى, هذا هوaka Profile Link :


    اذا قمنا بمسح الكلمة بالأحمر "_com" من ال Link وضغطنا Enter فأننا بذلك سنصل الى aka Profile Link
    من الان وصاعدا اذا ظهرت لك تلك الرسالة فى ذلك الموقع قم بعمل نفس الخطوات.

  2. اذا واجهت صعوبة فى فهم أى مسألة أدخل على منتدى الموقع وستجد موضوع لكل مسألة, أقرأ مشاركات الأخرين قبل أن تسأل عن مشكلتك, مشاركات الاخرين قد تكون مفيدة,أدخل الى المنتدى من هنا.

  3. اذا أردت أن تجرب بعض ال Test Cases يمكنك استخدام UVa Toolkit, ابحث عن المسألة وضع Test Cases ثم تأكد من ال Output الصحيح, ومن هذا الموقع أيضا تستطيع معرفة بعض المعلومات عن نوع هذه المسألة او ال Algorithm المستخدم فى حلّها ان كان مشهورا.

    نصيحة : أجعل ال UVa Toolkit أخر خياراتك وأنا لا أنصح به لأنه يعلم الكسل وأحيانا يحرمك من الاستفادة.
هذه بعض ال Links لبعض المسائل السهلة لكى تتعود على التعامل مع هذا ال Site .

اذا واجهتك أى صعوبات تفضل واسأل.

هنا نسخة PDF للمقال.


فى الموضوع ده هنتناول كيفية التعامل مع واحد من أجمد ال Online Judges على الأطلاق وهو PKU Online Judge


Link أولاالموقع :


http://acm.pku.edu.cn/JudgeOnline/



هتلاقى فوق كده فى Board فيها كل حاجة للموقع




  1. Online Judge: أهم ما بها F.A.Qs وبها كل التعليمات الخاصة بالموقع.

  2. Problem Set :
  • Problems : بتوديك على المسائل.
  • Submit Problem : لو انته عايز تبعت الحل بتاع مسألة .
  • Online Status : دى بتجيب حالة ال Submissions اللى اتبعتت للموقع, النيتجة بتاعتها بتبقى موجودة فى ال Online Status .
  • Problem ID : تقدر تعمل Search على أى مسألة سواء بأسمها أو برقمها أو بكلمة جواها.

3. Authors:
  • Register : لو انته عايز تسجل فى الموقع.
  • Update Your Info : لما تحب تعدل أى حاجة فى ال Profile بتاعك .
  • Authors rank list : تقدر تشوف ترتيب الناس على موقع وتشوف ترتيبك .
  • Search : تقدر تدور على أصحابك وتشوف ال Profiles بتاعتهم .

4. Online Contest: لو فى مسابقات Online بتبقى مواعيدها موجودة هنا وتقدر تشارك فيها لو حبيت .



ثانياا البدء بالحل :


طبعا بعد ماعملنا ال Account بتاعنا نروح بقى نعمل . Log in



وبعدين أضغط على Problems هتظهر الصفحة التالية .

  1. Volume : يحتوى على 28 صفحة كل صفحة بها 100 مسألة, ولكن خلى بالك مش مترتبين من الاسهل للأصعب.

  2. Search : لو حبيت تدور على مسألة معينة أكتبها هنا واختار من جنبها نوع البحث .

  3. ابحث عن كل المسائل اللى محدش حلها خالص لا انته ولا حد من أصحابك علشان تتحدوا بعض وتعملوا مسابقات بينكم وبين نفسكم.

  4. ID : كل مسألة لها ID ... وال ID هو اللى هيتخدم بعد كده فى كل ال DataBase بتاعة ال Site هيبقى موجود فى ال Profile بتاعك IDs وفى ال Online Status نفس الكلام ... وممكن تقول تستخدم ال ID فى البحث.

  5. Tittle : اسم المسألة.

  6. Ratio : من أهم الحاجات فى الجدول ده ... كل ما كان ال Ratio أعلى كل ما كانت المسألة أسهل ... وهو عبارة عن النسبة بين عدد الحلول الصحيحة وعدد كل الحلول بما فيها الخاطئة ... ولكن خلى بالك أحيانا بتخدع ... قد يكون عدد الحلول الصحيحة على سبيل المثال 10 وعدد الحلول كلها برضه 10 وبالتالى يكون ال Ratio يساوى 100% .... وهذا مش معناه ان المسألة سهلة .


اختار أى مسألة من المسائل دى .... افتح المسألة وأقرأها كويس وابدأ بحلها .

لما تخلص كتابة الكود وتتأكد أن حلك صحيح انزل تحت خالص ودوس على .Submit


هتجيلك الصفحة دى

  1. اكتب ال ID بتاع المسألة وفى الغالب بيكون موجود.

  2. اختار لغة البرمجة.

  3. اكمل Copy و Past للكود بتاعك هنا.

  4. دوس على Submit .


دلوقتى علشان نعرف الحل بتاعنا صح ولا لأ هانضغط على كلمه Online Status وهى بتجيب كل الحلول اللى بتتبعت على السايت على حسب أخر حل اتبعت.



  1. Run ID : رقم ال Submission ونلاحظ هنا انه بي Save كل ال Submission عنده فى ال Data Base .
  2. User : اسم اللى بعت ال Submission ... طبعا علشان لو واحد صاحبك بيحل من وراك تعرف علطول :D:D .
  3. Problem : رقم المسألة ولينك ليها علشان لو حبيت تدخل على المسألة وتحلها انته كمان.

  4. Result : نتيجة ال Submission وطبعا ال Accepted أحلى واحدة فيهم .

  5. Memory : لو الحل بتاعك صح بيقولك هو خد قد ايه من ال Memory ودى أحد مميزات ال Site.

  6. Time : لو الحل بتاعك صح بيقولك انته أخد وقت قد ايه.

وطبعا زى ما احنا شايفين كل حاجة متسجلة بالتاريخ.


دلوقتى حضرتك بقى جيت فى مرة كدة مش فاكر انت حليت كام مسئله ولا انت فاكر انت حليت ايه اصلا الحل الوحيد انك تروح لل Profile يتاعك .

اضغط على اسمك من فوق على اليمين وهيجيلك ال Profile بتاعك


  1. من أهم وأجمد مميزات ال Site ده .... لو حبيت تعمل مقارنة بينك وبين أى حد من أصحابك أكتب أسمك وأسم صاحبك وقارن ... وشوف هو ايه اللى حله وايه اللى مش حله وايه انته حليته وهو مش حاله والعكس .

  2. أرقام ولينكات كل المسائل اللى انته حليتها.

  3. لو دوست على Solved أو Submissions هيجيبلك جدول فيه كل المسائل اللى انته حليتها والجدل فيه نفس خصائص الجدول بتاع Online Status



  1. Problem ID : لو انته حالل مسائل كتيرة تقدر وعايز تدور على مسألة معينة اكتب ال ID بتاعها .

  2. Result : لو عايز تدور على كل المسائل ال Accepted أو كل ال WِA أو .. أو ... الخ.

  3. Language : لو بتدور على المسائل اللى حليتها بلغة معينة.

  4. من أهم مميزات السايت انه بي Save كل الأكواد اللى انته بتبعتها بما فيه الاكواد الغلط ... لو دوست على لغة البرمجة هيفتحلك الكود بتاعك .... لو حبيت تنزل كل الأكواد اللى انته بعتها للسايت ... دوس على كلمة Archive فوق خالص تحت أسمك.


اهم حاجة بجد بقى انك لو جالك wrong answer كتير حاول تانى وان شاء الله هاتقدر تجيبها accepted بس ماتزهقش

ودى لينكات لكام مسألة كده علشان تسخن .


http://acm.pku.edu.cn/JudgeOnline/problem?id=1000

http://acm.pku.edu.cn/JudgeOnline/problem?id=1004

http://acm.pku.edu.cn/JudgeOnline/problem?id=2509

http://acm.pku.edu.cn/JudgeOnline/problem?id=1005

http://acm.pku.edu.cn/JudgeOnline/problem?id=1477


يلا بقى ربنا معاكم واى اسئله انا ان شاء الله ارد عليها .


هنا هتلاقوا نسخة PDF للمقال


تناولنا فى Online Judges --- Part 1 مقدمة عن تلك المواقع وانواع المسائل بها بصورة مختصرة.


فى هذا الجزء سوف نتناول باذن الله الاتى :
  • كيف يحدد ال Judge اذا كان الحل صحيحا أم لا ؟
  • نتائج ال Submissions كثيرة أفضلها Accepted .
  • الملاحظات التى يجب أخدها فى الاعتبار عند كتابة الكود بال ++C.
  • بعض الأخطاء الشائعة.
  • نصائح العامة.


أولا كيف يحدد ال Judge اذا كان الحل صحيحا أم لا :


بطريقة ما يقوم ال Judge بتشغيل كودك ويقوم باعطائه مجموعة من ال Test Cases للمسألة التى تقوم بحلها, حيث أن ال Judge لديه مجموعة من ال Test Cases لكل مسألة بخلاف التى تظهر فى المسألة ... بعد ادخال كل ال Input الى كودك يتم حفظ كل ال Output فى File, ثم يتم مقارنة ذلك ال File باخر به جميع ال Output الصحيحة لل Input المدخل, اذا تطابق الملفان يكون الحل الذى أرستله صحيحا ويرسل لك ال Judge كلمة "Accepted" ... واذا كان هناك اختلاف ولو مقدار مسافة واحدة " " يرسل لك ما يفيد ان حلّك خطأ.

ولذلك يجب أن يغطى حلّك على الأقل ال Sample Input و ال Sample Output المعطاة فى المسألة, ولكن هذا لا يعنى بالضرورة انك أرسلت الحل الصحيح , فى بعض الأحيان يكون هناك حالات "Cases" لم يتم أخذها فى الاعتبار"Not Handled".


ثانيا نتائج ال Submissions كثيرة أفضلها Accepted :


  • Accepted: النتيجة الوحيدة التى تعنى أن حلك صحيح .
  • Presentation Error: تعنى أنه "ربما" يكون هنا خطأ فى عرض ال Output ... قد تكون هناك مسافات زائدة أو غير موجودة.
  • Time Limit Exceeded: الحل الذى أرسلته يأخد وقت أكثر من المطلوب, قد يكون ال Algorithm الذى تستخدمه بطئ, أو انك تورطت فى Infinite Loop.
  • Memory Limit Exceeded: الحل الذى أرسلته يأخد مساحة أكثر من المطلوب.
  • Wrong Answer: الحل الذى أرسلته غير صحيح قد تكون لم تنتبه الى بعض ال Special Cases أو انك تفكر بطريقة خاطئة من البداية.
  • Runtime Error: يوجد input يؤدى الى عمل Crash للبرنامج ... وفى الغالب يكون سببها فى ال ++C هو عمل Access لمكان غير موجود بال Array أو غيرها.
  • Compile Error: ال Judge لا يستطيع عمل Compile للكود وقد يكون السبب انك استخدمت أشياء ليست Standard.