يكشنبه, ۷ دی ۱۳۹۳، ۱۲:۵۳ ب.ظ
چگونه پاسخهای داوران آنلاین را بفهمیم؟
منظور از داوری آنلاین (Online Judge) سروری هست که برنامه شما را کامپایل و در صورت موفقیت اجرا می کند و جواب خروجی برنامه شما را با جواب مورد نظر مقایسه کرده و بسته به اینکه برنامه شما چه چیز چاپ کرده باشد، برای شما نتیجه این تست را می فرستد
اگه اوایل کار با وب سایت uva و اولین ارسالهاتون در این سایت هست این مطلب رو حتما مطالعه کنید :
بعد از چند لحظه که شما برنامه خودتون رو (برای حل یک مسئله) فرستادید، یک ایمیل تاییدیه (یعنی اینکه برنامه شما با موفقیت دریافت شد، اما هنوز برای درست بودن جواب بررسی نشده است) از سیستم داوری آنلاین دریافت می کنید. (البته اگر که شما هنگام ایجاد اکانت، گرینه دریافت توسط ایمیل را تیک زده باشید. همچنین می توانید نتیجه برنامه خود را بصورت لحظه ای روی سرور نیز مشاهده کنید.)
برنامه شما روی سیستم ما کامپایل و اجرا می شود، و داور خودکار، آن را با تعدادی ورودی و خروجی تست می کند، یا شاید با یک ابزار داوری ویژه. بعد از چند ثانیه یا دقیقه، شما از طریق ایمیل (یا می توانید روی صفحه مخصوص اکانت خود) یکی از این جوابها را مشاهده کنید :
Accepted (AC) : (و زمان اجرای برنامه و حافظه مصرفی آن)
بسیار عالی! برنامه درست کار می کند!. توجه داشته باشید که در طی مسابقه (مسابقات آنلاین که هر چند روز یکبار بصورت عمومی برگزار می شود) شاید فقط 1 دقیقه زمان اجرای CPU به شما اجازه داده شود و اگر برنامه شما در این زمان مورد نظر به اتمام برسد (با جواب درست)، در نتیجه بسیار عالی، اما این بستگی به قدرت داور در مقایسه با مسابقات واقعی دارد.Presentation Error (PE) :
خروجی برنامه شما درست است اما با فرمت خواسته شده چاپ نشده است. فضاهای خالی (Space)، هم ترازی ها (left Justified & right Justified)، رفتن به خط بعد (line feed) و ... را چک کنید.(ممکن است گذاشتن یا نگذاشتن یک space باعث این خطا شود)
Wrong Answer (WA) :
جواب درستی برای ورودیها داده نمی شود. ورودی و خروجی هایی که ما برای تست برنامه ها استفاده می کنیم، عمومی نیستند (توصیه می شه تا بیشتر با مسابقات واقعی خو بگیرید)Crash - Runtime Error (RE) :
برنامه شما حین اجرا متوقف شد (خطای خروج از محدوده مجاز حافظه، خطای اعداد ممیز شناور و...). علت اصلی به کاربر گزارش می شود (باز هم اگر که گزینه مربوط به دریافت توسط ایمیل را تیک زده باشید).Time Limit Exceeded (TL) || (TLE) :
برنامه شما زمان بسیار زیادی (بیشتر از حد مجاز تعیین شده برای یک سوال خاص) را برای اجرا صرف کرده است؛ از روی این خطا نمی توانید بفمهمید که برنامه شما جواب درست می دهد یا خیر.Memory Limit Exceeded (ML) || (MLE) :
برنامه شما سعی در استفاده بیش از حد حافظه (بیشتر از حد مجاز تعیین شده برای یک سوال خاص) را برای اجرا می خواهد صرف کند؛ اگر شما مطمئنید که یک مسئله به حافظه بیشتری از حد تعیین شده نیاز دارد، لطفا به ما هم بگید.Output Limit Exceeded (OL) || (OLE) :
برنامه شما سعی در نوشتن اطلاعات بیشتر از حد مجاز را دارد. این مشکل معمولا از رفتن درون یک حلقه بینهایت ناشی می شود.Restricted Function (RF) :
کد برنامه شما سعی در استفاده از توابع غیر مجاز را دارد (مانند fork(), fopen(),...)Compile Error (CE) :
کامپایلر (gcc/g++/gpc) نمی تواند برنامه شما را کامپایل کند. البته پیامهای اخطار (warning messages)، پیام خطا به حساب نمی آیند. پیامهای خروجی کامپایلر به شما توسط ایمیل اعلام می شود (باز هم اگر که گزینه مربوط به دریافت توسط ایمیل را هنگام ثبت نام تیک زده باشید!).Submission Error (SE) :
شما مشخصات مربوط برای یک ارسال سوال به داور را بدرستی ننوشته اید (مانند : کد کاربری اشتباه، شماره سوال اشتباه، ....).Cant't Be Judged (CJ) :
داور، ورودی و خروجی را برای مسئله انتخاب شده تست نکرده است. هنگامی که یک مسئله را انتخاب می کنید دقت کنید و از آماده بودن داور آنلاین برای آن مسئله، اطمینان حاصل کنید!Access Denied (AD) :
به آدرس اینترنتی شما اجازه ارسال جواب داده نمی شود. ممکن است تنظیمان خود را طوری انتخاب کرده باشید که فقط توسط ایمیل بتوانید جوابها را ارسال کنید : اطلاعات کاربری خودتون رو ویرایش کنید. در غیر اینصورت با ما تماس بگیرید!Non Authenticated (NA) :
ایمیل شما اعتبار سنجی نشده است و یا ابزار ارسال جواب (ابزاری که شما برای ارسال جواب استفاده می کنید)، اطلاعات مربوط به احراز هویت را ارسال نکرده است.Out of Contest Time (OC) :
این پیام تنها در طول یک مسابقه ممکن است نمایش داده شود، اگر که یک برنامه پس از پایان زمان مسابقه ارسال شود.Delayed (DL) :
اگر که سیستم داوری آنلاین بیش از حد مشغول باشد، اجرای برنامه هایی که منابع زیادی را اشغال می کنند (نزدیک به حد مجاز) برای چند دقیقه یا ثانیه به تعویق می افتد. برنامه خودتان را دوباره ارسال نکنید.Judge Disabled :
این پیام بخاطر کارهای نگهداری داخلی (کارهای داخلی روی سرور داوری آنلاین) ممکن است نمایش داده شود، که بیشتر وقتها از قبل اعلام می شود. احتمالا، برنامه شما باید بعدا مورد بررسی قرار گیرد تا وقتی که صریحا به شما اعلام کنند که اکنون می توانید دوباره برنامه های خود را ارسال کنید.Judge Not Ready :
بعضی اوقات، سیستم میزبان داور ممکن است دوباره راه اندازی شود و نرم افزار داوری در حال بارگذاری باشد. برنامه خود را چند ثانیه دیگر بفرستید.تمام ایمیلها (و ارسالها از طریق سیستم ارسال Submit-o-matic) دریافت می شود و نتایج ثبت می شود؛ اینکارها به ما این امکان را می دهد تا هر گونه سوء استفاده های احتمالی از داوری آنلاین را شناسایی کنیم. اگر چندین برنامه برای یک مسئله مشابه ارسال کنید و چندین پیام Accepted برای آنها بگیرید، بهترین زمان CPU و/یا حافظه مصرفی برای شما در لیست ثبت می شود.
--------
خطاهایی که بیشتر ممکن است با آنها مواجه شوید :
CE , RE , WA , TL , PE , AC , RF
------
۹۳/۱۰/۰۷