• 0
مصطفى 36a2

دليلك لاستخدام موقع اختبار القدرات البرمجية في الخوارزميات SPOJ

سؤال

السلام عليكم ورحمة الله وبركاته

هذا الموضوع تتمة لهذا الرابط .. اقرأه حتى نبدأ :)

أرجو من القراء السؤال عن أي شيء غير واضح ليتم شرحه ليتكامل الموضوع بإذن الله ..لنبدأ ..

 

هذا الموقع كان بفضل الله , طريقي الذي سلكته في عالم البرمجة , لم أكن متقدّماً في البرمجة كلغات , ولكن بعد حوالي عام في الموقع , كان الفرق كبيراً جداً , وأتمنى لأبناء الأمة أن يستفيدوا منه بأكبر قدر ممكن ...

أي سؤال عن استخدام الموقع ضعه هنا ..
 

من الواجهة الأساسية للموقع WWW.SPOJ.COM
على اليسار يمكنك رؤية القائمة وفيها :

problems

post-256536-0-21522400-1385136032_thumb.

عند الضغط يمكنك اختيار نوع المسائل

post-256536-0-35749300-1385136651_thumb.

(الصور قليلة الجودة لتسريع تحميل الصفحة لأصحاب النت البطيء )

 

classical مسائل عادية من المستوى المتوسط فما فوق ... وصولا إلى الاحترافي جداً ..
تحصل فيها على قبول للحل أو رفض بناء على واحد من 4 احتمالات ...
خطأ أثناء ترجمة الكود ... Compile Error
خطأ أثناء وقت التنفيذ ... Runtime Error وله عدة احتمالات بناء على الخطأ
انتهاء المدة المحددة دون الحصول على الخرج المطلوب ... Time Limit Exceeded

وأخيراً Wrong Answer عندما يقوم برنامجك بطباعة نتائج غير صحيحة ..

 

Challenge مسائل يكون التحدي فيها ليس الحل فقط .. بل الوصول لأفضل حل حسب المطلوب ( أقصر , أسرع , الأكثر فعالية , الأدق إلخ .)

Tutorial مسائل سهلة أو موجودة في الكتب العادية للخوارزميات .

باقي الأنواع تسالي ومتفرقات :)

 

--نظام وضع المسائل:
واضع المسألة يمكنه اختيار طريقة الحكم على صحة الحل المقدم ..
الطريقة التقليدية تكون بوضع ملف دخل ... وملف خرج
ملف الدخل يحوي المدخلات التي سيعالجها الكود ...
وملف الخرج يحوي المخرجات التي يفترض أن يخرجها الكود الصحيح ...

لحل مسألة كل ما عليك فعله هو كتابة كود يقرأ المدخلات , ويطبع المخرجات المطلوبة  بحيث تطابق ملف الخرج الذي جهّزه واضع المسألة  ...

(ملاحظة هامة : الدخل والخرج بالنسبة لك هو stdin و stdout .. والموقع هو من يتكفل بتوجيهه إلى ملفات )

غالبا يقوم واضع المسألة بوضع أكثر من زوج واحد (دخل وخرج )
بجيث يختبر البرنامج على كل زوج على حدة ...

ما يهم من يحل المسألة هو فقط أن يكون الخرج صحيحاً بناء على الدخل الموافق

المسألة الأولى بالنسبة لجميع المستخدمين تقريباً :::TEST اقرأها وحاول حلّها قبل متابعة الموضوع .. :)

في البداية يضع الproblem setter نص المسألة وقد يحوي قصة جانبية للتشويق
ثم يضع مثالا على دخل وخرج للمسألة ...


لتقديم حل للمسألة ... ( بعد تسجيل الدخول ...)
ندخل الى الصفحة Submit (من الرابط في أعلى الصفحة إلى اليسار قليلا)
post-256536-0-28696600-1385137159_thumb.
ثم نلصق الكود في المكان المخصص أو نرفعه من الحاسب
نختار اللغة التي كتبنا الكود بها ... ثم نضغط submit

 

بعد تقديم حل ... ننتقل تلقائيا الى صفحة الحالة ..status
والتي تعرض آخر الحلول المقدمة لجميع المسائل ...
وهنا نتعلم أمراً للحياة .... برتقالي أو أخضر ...الأخضر يعني أن الكود يحقق المطلوب وأنك ناجح
البرتقالي يعني الفشل ...

صحيح أن الأخضر أجمل ... ولكن البرتقالي أفضل ... :)
فبدون البرتقالي لن تتعلم ...

عندما تحصل على برتقالي قد يحوي العمود result على رابط إلى صفحة مخرجات المترجم compiler لترى الأخطاء المتولدة أثناء الترجمة (ان وجدت)
أو قد يكون هناك رابط إلى صفحة ويكيبيديا لتعرف نوع الsignal المرسلة بسبب runtime error

في القائمة على اليسار نجد ranks
والتي يمكن من خلالها مشاهدة أفضل المبرمجين في العالم ...
أو معرفة ترتيب البلاد في الموقع بالضغط على countries
ومن ثم يمكن مشاهدة ترتيب المبرمجين في أي بلد تختاره ...
 
محددات المسألة :
post-256536-0-01227100-1385137190_thumb.
نظام النقاط في الموقع :
للمسائل في قسم classical يكون لكل مسألة عدد من المستخدمين (الذين قدمو حلولا صحيحة)
وكل من قدم حلاً صحيحاً يأخذ 80 مقسومة على ( 40 + عدد المستخدمين ) نقطة
كلما زاد عدد المستخدمين تنقص النقاط المستحقة ... سواء كانت زيادة المستخدمين قبل تقديم الحل أم بعده ...
بالنسبة لقسم challenge يحصل أفضل حل على 3 نقاط
وباقي الحلول تنسب النقاط المحصلة في المسألة إلى نقاط أفضل حل ...
مثلاً أفضل حل له 89 نقطة (نقاط المسألة score مختلفة عن نقاطه points)
وقدمنا حل ب 56 نقطة ... نحصل 56\89 نقطة (دوما اقل من الواحد)

وباقي الأقسام ليس لها نقاط
 
للمزيد من المعلومات ... الصفحة tutorial
تجيب عن معظم الأسئلة ...
 
الموقع IDEONE يقدم IDEs لكل اللغات التي يدعمها SPOJ
ويمكن دون تسجيل حساب فيه أن تجرب اي كود باي من تلك اللغات أو ان تشاهد نماذج samples لحل المسألة TEST بأي من تلك اللغات

ويقدم منتدى SPOJ عدداً لا بأس به من الأكواد التي تحل مسألةTEST وبلغات متعددة
هنا صفحة حلول بلغة C

  مسائل للبدء :
أولاً يجب أن تحل TEST
وبعد ذلك أقترح عليك تجربة :
KAMIL في قسم التحديات ...
يجب أن يكون كودك أقصر ما يمكن ...
وبعد أن تحلها انظر إلى ranks المسألة واستمتع بمعرفة كم هو قصضير أقصر حل ..

مسألة وضعها واحد من أفراد المنتدى STICKS  الأخ Keep Forward

اقرأ عن Dynamic Programming بعد أن تحاول حل هذه المسألة  FARIDA

ملاحظة : بعد حلّك لـ 20 مسألة يمكنك تقديم طلب أن تصبح problem setter وتضع مسائل ليحلّها أفضل مبرمجي العالم , وستتعلّم الكثير منها .

 

سأكتب في الرد القادم تدريباً لحل مسألة خطوة خطوة .. من قسم tutorial

 

والله ولي التوفيق

تم تعديل بواسطه مصطفى 36a2
5

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

32 إجابة على هذا السؤال .

  • 0

كلام كثير .. وقد يتجاوز هذه الأمور كثير منكم في دقائق معدودة ..

إذا لنبدأ :

أنشئ حسابك في الموقع وتأكد من وضع بلدك .. لترفع مستواه . يوماً ما ...

لنبدأ الآن :

(بالمناسبة 40% من تعلمي للانكليزي كان من الموقع :) )

ادخل إلى أسهل مسألة على الإطلاق ... طباعة Hello World ...

سنكتب الكود :

مثلاً .. بلغة جافا  ( يطلب منك SPOJ تسمية الclass العام في java و c# دوماً Main )

الكود :

public class Main{public static void main(String[]args){System.out.println("Hello World!");}}

لو طبعت HELLO فستحصل على Wrong Answer لا تنس أن برنامجاً هو الذي سيحكم على كودك وليس بشراً ..

 

لا تكمل حتى تنفّذ ...

 

والآن إلى المسألة الثانية .. اجمع رقمين  !

إذا كنت معتاداً على طباعة

Enter the first number

Enter the Second Number

فعليك ترك هذه العادة .. فالبرنامج يعرف أن عليه إدخال الأرقام .. وكل الدخل ستتلقفه دفعة واحدة .. لذلك اقرأ فوراً ..

الكود بلغة C

main(){int a,b;scanf("%i%i",&a,&b);printf("%i",a+b);return 0;}

إذا كتبت داخل scanf ..المتحول a بدلاً من &a .. طبعاً البرنامج بالحالة الطبيعية لن يعمل لأنك ستحصل على Access violation اما الموقع فيسصدرsignal خاصة بالخطأ اقرأ عنها في ويكيبديا عندما تظهر لك .

لو جعلنا الـmain تعيد void  ... فستحصل على NZEC أي non zero return  .. الخلاصة : يجب على برامجك أن تعيد 0 سواء بـ return  أو بتصفير eax بطريقة ما :)

وهكذا ...

سأترك الموضوع أسبوعاً من الآن .. لترك مجال للأخوة بتجريب ما سبق .. أي مشكلة (حاول حلها بنفسك ) وإن لم تعرف ( فحاول مرة أخرى ) وبعد عشرين محاولة فاشلة .. لا أعرف ماذا أقول .. حاول أيضاً.. :)

على كل حال للمشاكل التقنية مع الموقع .. ضعها هنا في المنتدى :)

بالتوفيق

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم

موقع جد مفيد انا في بدايتي معه

والفضل يعود لك :)

+

هل يمكن معرفة اي نوع من المسائل انت انطلاقا من المسألة

متلا 

http://www.spoj.com/problems/SUCCESS/

هل يمكن معرفة نوعها دون البحت عنها في القائمة الخاصة بكل نوع؟؟

+

بعد اجابتي حصلت ف RESULT على 89 مادا تعني ؟؟

+

هل توجد طريقة لمعرفة الكود الخاصة باحسن اجابة ؟؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

بخصوص معرفة نوع المسألة فهو واضح لم انتبه اليه

يكون مكتوب امام اسم المسألة

SPOJ Problem Set (tutorial)
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

كيف حل المسائل ادخال واخراج سي شارب

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

يا أهلاً وسهلاً :)

أولاً : الفضل لله وحده ولا فضل لي في شيء .. هو ساقني إليه في قصة طويلة .. ومن ثم أكرمني بأن تابعت فيه وزادني علماً .. فالحمد لله تعالى

وبعد :

يمكن لمن يضع المسألة أن يرى جميع الحلول المقدّمة لها الصحيحة والخاطئة .. ولكن : في موقع SPOJ وعلى عكس معظم المواقع التي أعرفها ... تموت حنقاً ولا تعرف ما هو أفضل حل D:

وذلك لسبب هام :

تكمن روعة SPOJ في أن المسائل فيه لا تموت بانقضاء مهلة ما .. بل هي بانتظار المزيد من الحلول والمزيد من الشاركين دوماً .. ولذلك فهذا هو السبب الواضح خلف عدم السماح للأعضاء برؤية الحل .

(يمكنك أن تضع مسائل بعد أن تراسل الإدارة وتحتاج إلى ان يكون لديك 20 مسالة محلولة في رصيدك )

 

نعود : واضع المسألة يجدد طريقة الحكم على الحل .. فهناك ما يُعرف بـ judge أي :البرنامج الذي سيحدد جودة الحل أو قبوله/رفضه

كل المسائل في قسم classical نتيجتها Accepted باللون الأخضر أو :  جواب خاطئ أو خطأ في الترجمة أو انتهاء الوقت وما إلى ذلك باللون البرتقالي , ويكون أفضل حل هو الحل الأسرع (most efficient )

 

أما  في قسم challenge فيكون لكل مسألة طريقة معينة لحساب أفضل حل  منها ما يحدد ( الأقصر ) أو (الأسرع ) أو وفق معادلة يحددها واضع المسألة في نصها

المسألة SUCCESS من مسائل shortening والتي تعطيك score حسب طول الحل الخاص بك .. ويبدو أن الكود الخاص بك هو 89

 

بالمناسبة / سيشيب شعرك عند معرفة طول أفضل حل  :)

 

أرجو منك أن تتابع وضع أي سؤال حول الموقع .. وإن شئت يمكننا مناقشة أي مسألة من نوع tutorial داخل المنتدى وسأكون في قمة السرور ( ويمكنك أن تطلب ترجمتها إن أردت )

 

والله ولي التوفيق

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أخي كريم أهلاً وسهلاً بك ..

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

الإدخال والإخراج دائماً من stdin و stdout

والمشكلة الوحيدة هي أن تكتب اسم الفئة Main في جافا وc#

على كل حال هذا رابط حل المسألة TEST بلغة C# أرجو أن يفيدك

 

وفقكم الله جميعاً إخوتي :)

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أولاً : الفضل لله وحده ولا فضل لي في شيء

 

نعم الفضل لله والحمد لله

 

يمكن لمن يضع المسألة أن يرى جميع الحلول المقدّمة لها الصحيحة والخاطئة .. ولكن : في موقع SPOJ وعلى عكس معظم المواقع التي أعرفها ... تموت حنقاً ولا تعرف ما هو أفضل حل D:

وذلك لسبب هام :

تكمن روعة SPOJ في أن المسائل فيه لا تموت بانقضاء مهلة ما .. بل هي بانتظار المزيد من الحلول والمزيد من الشاركين دوماً .. ولذلك فهذا هو السبب الواضح خلف عدم السماح للأعضاء برؤية الحل .

(يمكنك أن تضع مسائل بعد أن تراسل الإدارة وتحتاج إلى ان يكون لديك 20 مسالة محلولة في رصيدك )

 

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

 

بالمناسبة / سيشيب شعرك عند معرفة طول أفضل حل   :)

 

افضل حل لديه في result 24 يعني الكود الخاص به مختصر عن الكود الدي وضعته انا باربع مرات

 

أرجو منك أن تتابع وضع أي سؤال حول الموقع .. وإن شئت يمكننا مناقشة أي مسألة من نوع tutorial داخل المنتدى وسأكون في قمة السرور ( ويمكنك أن تطلب ترجمتها إن أردت )

 

انا الآن بصدد حل هده المسألة والله تقريبا ساعة وأنا فقط احاول فهم المطلوب 

http://www.spoj.com/problems/FARIDA/

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

 

 but if and only if you didn't take any coins from the monster directly before the current one.

 

وجدت الحل وسأقوم بكتابته وتجريبه

+ ما رأيك بأن اقوم بطرح موضوع في قسم السي اضع فيه المسألة؟؟

 

+ ادا قمت بتجريب العديد من الحلول لكن كلها خاطئة هل يؤتر دالك على نقاط العضوية في الموقع؟؟

 

والله ولي التوفيق

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

مسألة FARIDA تعتمد مبدأ برمجي اسمه Dynamic Programming إذا قرأت عنه يمكنك فهمه بسهولة

بالنسبة لتجربة محاولات خاطئة .. قمت مرّةً بتجربة أكثر من 100 حل في مسألة اسمها CRYPTO :)

النقاط لا تتأثر ولكن في صفحتك الشخصية سيظهر أنك قمت خلال حياتك بـ 20 جواب خاطئ و60 خطأ ترجمة وهكذا .. (ولكن لا تؤثر على أي شيء آخر )

أظن انك فهمت المسألة بدليل الاقتباس الذي وضعته .. أنصحك بمحاولة الحل بالورقة والقلم يدوياً حتى تستوعب المسألة جيداً

(لا تضع المسألة كاملة ولكن يمكنك تصميم مسألة مماثلة إن شئت .. ) لا نريد أن نكون السبب في حرق المسألة كما تعلم :)

 

المسألة تقول باختصار : أن تمر على الوحوش وتأخذ ما لديهم من النقود ولكن لا يمكنك أخذ النقود من وحش ما إلا إذا كنت قد تجاوزت الوحش السابق له .. وعليك الحصول على أكبر كمية

(اقرأ  في Dynamic Programming)

بالتوفيق

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

لا قمت بحل المسألة دون الاعتماد على اي مبدأ ولا اعلم عن اي اقتباس تتكلم

نعم اخدت ورقة وقلم وبدأت بتجربة بعض الطرق مع انها اخدت وقت مني تقريبا ساعتان متواصلة

+ ممكن ان تقول لي انت كم ستسغرق لحلها ؟؟؟ هههه اريد ان اعرف ماهو مستواي انا

مع العلم انني لم تكن لدي اي فكرة على طريقة حل المسألة

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

+ على ما اضن طريقة عمل الموقع في معرفة هل الكود البرمجي الدي وضعت صحيح ام لا

هو انه يقوم باعطائه مدخلات ويقارن الخارج مع المتال الدي وضعه صاحب المسألة

ادا كانت هده هي الطريقة التي يعتمدها الموقع

فهل ادا قمت بوضع كود يستقبل اي مدخلات ويعطي نفس الخارج الموجود في المتال الدي وضعه صاحب المسألة سيعتبر الموقع أن الاجابة صحيحة ؟؟؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

لا أتذكر تحديداً هذه المسألة كم أخذت ولكن بالتأكيد أخذت معي أكثر من ساعتين ومستواك ((ممتاز)) وأتمنى ان تستمر ... وفقك الله أخي محسن :)

هناك مسألة استغرقت معي أسبوع كامل وكنت اعمل عليها حوالي 4-5 ساعات يومياً ورسبت بسببها في 3مواد لأنني كنت احلها أثناء الفحص D: 

وأحياناً تصبح المسألة شغلي الشاغل لأسبوع أو اسبوعين ... وهكذا :)

 

في هذا المجال ستكتشف المكتَشف مرات ومرات  ... وفي النهاية ستصل إلى قرار : ( كل ما اكتشفه العلماء قبلي يمكنني اكتشافه , ولكن ليس لدي الوقت الكافي لذلك :) )

 


فهل ادا قمت بوضع كود يستقبل اي مدخلات ويعطي نفس الخارج الموجود في المتال الدي وضعه صاحب المسألة سيعتبر الموقع أن الاجابة صحيحة ؟؟؟

نعم :)

ولكن هناك فكرة اسمها  : عدّة ملفّات دخل وخرج ..

أي : لا يتم اختبار الكود مرة واحدة على مدخلات وينتظر مقارنة المخرجات لمرة واحدة فقط .. بل غالباً يكون هناك عدة ملفات دخل ومقابلها في الخرج وبالتالي إن كان الكود يطبع الخرج الصحيح لملف واحد فإنه لن يعمل للملف الثاني وهكذا

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

شكرا لك اكرمك الله

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

ok

 وفي النهاية ستصل إلى قرار : ( كل ما اكتشفه العلماء قبلي يمكنني اكتشافه , ولكن ليس لدي الوقت الكافي لذلك  :) )

;) 

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

دائما اقع في نفس السؤال

عندما يتم طلب منك صنع تطبيق ويكون يحتوي على ارقام كبيرة

متلا في مسألة farida

N اصغر من 10 اس 9

هل اقوم بوضع جدول دو حجم ديناميكي على حسب N ام اضع رقم كبير محدد ؟؟؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أهلاًُ بك أخي كريم .. بالتوفيق :)

________________

أخي محسن


N اصغر من 10 اس 9

هل اقوم بوضع جدول دو حجم ديناميكي على حسب N ام اضع رقم كبير محدد ؟؟؟

كلا الطريقتين صحيحة ولكن استخدم الحجم الديناميكي إن كنت ستنشئه مرة واحدة .. واستخدم الحجم الكبير المحدد إن كنت ستسخدم الجدول في كل test case

بالتوفيق

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم 

شكرا لك على الموقع الاكثر من رائع

لنفرض انه في احد المطاليب طلب استخدام اعداد عشوائية، فكيف سيتأكد الموقع من ان حلي يطابق المطلوب

فكما بينت انت يضع واضع السؤال ملف الجواب ويقارن بين البيانات التي توصلت اليها والملف المنشود

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أهلاً وسهلاً أخي أحمد ..

وضع ملف للخرج والمقارنة معه هو أبسط طرق اختبار الجواب

يمكنك أن تكتب Judge بنفسك ووضعه للتحقق

مثلاً لو طلبت منك طباعة أي رقم فردي بشكل عشوائي

يمكنني كتابة برنامج للحكم على الخرج يقوم بالتحقق من أن الخرج لا يقبل القسمة على 2 , وعندها سأعجيك Accepted وأكثر من ذلك .. يمكنني طباعة معلومات تفيدك في معرفة أين اخطأ الكود الخاص بك مثلاً ..

باختصار يمكنك كتابة كود للحكم على الكود ..

 

:) بالتوفيق

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

مصطفى 36a2, on 14 يناير 2014 - 09:50 AM, said:

يمكنني كتابة برنامج للحكم على الخرج يقوم بالتحقق من أن الخرج لا يقبل القسمة على 2 , وعندها سأعجيك Accepted وأكثر من ذلك .. يمكنني طباعة معلومات تفيدك في معرفة أين اخطأ الكود الخاص بك مثلاً ..

باختصار يمكنك كتابة كود للحكم على الكود ..

اكون شاكرا 

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

برنامج عادي جداً .. انظر هنا

هذا مثال عن ما ذكرته لك :

بهذه البساطة :

#include <spoj.h>#include <stdio.h>int main(){    int i;   spoj_init();   fscanf(spoj_p_in,"%d",&i);   if(i%2==1){    fprintf(spoj_u_info,"Congratulations");    fprintf(spoj_score, "AC");    }    else{    fprintf(spoj_u_info,"Sorry %i is even number",i);    fprintf(spoj_score, "WA");    }   return 0;} 

(ربما أسماء الملفات غير صحيحة , هذا ما أتذكره )

اقرأ الرابط أعلاه للمزيد

الكود الخاص بك (حل المسألة) سيقرأ الدخل (إن وجد ) ويطبع الخرج وسيتم تلقائياً حفظ الخرج في ملف ,

والآن يأتي الـ Judge ويقرأ بيانات الخرج الخاص بك من الملف spoj_p_inويقوم بعمليات لتحديد صحته ثم يطبع النتيجة لملف spoj_score ويقوم بعد ذلك نظام الموقع بقراءة هذه الملفات لبعرض لك النتيجة

 

كـproblem solver كل ما عليك هو طباعة الخرج المطلوب ..

أما كـproblem setter فعليك تحديد ملفات الدخل والخرج الصحيح الموافق ونص المسألة  , وإن لم يكن لمسألتك خرج ثابت فعليك كتابة Judge جديد خاص بك ليحكم على صحة أكواد الناس

ملاحظة : إن لم يتم تحديد judge خاص بك , فالـjudgeالافتراضي هو الذي يقارن خرج الأكواد المقدمة كحل مع الخرج الذي وضعته كواضع للمسألة

 

أتمنى يكون الموضوع أصبح واضحاً

 

والله ولي التوفيق

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

شكرا جزيلا لك 

الان اصبح واضحا

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم

لدي سؤال

هل مصحح الموقع يعتمد في تصحيحه على أشياء مثل

نوع المتغيرات التي استعملت أو هل قمت بعمل Initialisation للمتغيرات ام لا او هل قمت بتحرير الداكرة في آخر البرنامج أو هل قمت بعمل return 0 وووو

متلا في مسألة farida العددد المطلوب ادخاله قد يساوي 4^10 وأنا استعملت متغير من نوع int هل سيعتبرها خاطئة

+

wrong answer 

 

هل تعني أن الخطأ موجود في المخرجات أم مادا ؟؟

لأنني متأكد أن الحل صحيح ولكن مع دالك لا يعتبره الموقع صحيح
 

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

الخطأ الوحيد الذي يجب أن تتوقعه عندما تحصل على Wrong Answer هو خطأ في الناتج ( أي أن الخرج المطلوب ليس نفسه الخرج الذي أعطاه برنامجك )

ومسألة farida تحتاج استخدام long long (حسب ما أذكر) وإلا فسيحدث overflow ولن يحتفظ int بالناتج ( هذا إذا كانت طريقتك صحيحة لإيجاد الناتج )

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

نعم تم تصحيح المشكل

+

بالنسبة لأفضل الحلول يعتمدون على الوقت

لدي سؤال

هل الوقت يتغير على حسب نوع اللغة المستعملة متلا

هل ادا قمت بكتابة كود بالسي واستغرق نصف ثانية

وكتبت نفس الكود لكن بالجافا هل سيتغير الوقت ؟؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

نعم غالباً لغة جافا بطيئة والسي سريعة وهناك لغات تنفّذ أسرع منها , أحياناً تكون pascal سريعة جداً .

ابحث عن أفضل الحلول بنفس اللغة التي تستعملها وغالباً سيفاجئك الجواب

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

اوك لكن عندا رأيت أفضل النتائج دهلت

واووووو

0.08 ثانية كيف فعلها ؟؟؟

وأنا حصلت على 0.67 هههههههه وبنفس اللغة

مع أنني حاولت تصغير الكود الى اقصى حد ونقص المتغيرات

 

هدا الكود الدي حصلت به على 0.67

تم حذف الكود من قبل المشرف
تم تعديل بواسطه مصطفى 36a2
إزالة الكود , لأسباب سبوجيّة
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .