مسابقات برنامه نویسی بیان

مسابقات برنامه نویسی بیان

آخرین نظرات
  • ۲۰ خرداد ۹۴، ۱۹:۴۶ - spider robot
    توی#

۱۰ مطلب با موضوع «راهنمای مسابقه» ثبت شده است

امتیاز هر سوال حل شده در این مرحله به شکل زیر محاسبه می شود:

 

n: تعداد پاسخ های پذیرفته شده از تمامی شرکت کنندگان

t: زمان ارسال پاسخ توسط مسابقه دهنده

p: تعداد تلاشهای ناموفق مسابقه دهنده

 

 

 

به بیان ساده، نکات زیر در این فرمول مد نظر بوده است:

 

  • هر چه سوال ساده تر باشد یا به عبارتی تعداد افراد بیشتری آن را حل کرده باشند، امتیاز آن سوال کاهش می یابد (سختی سوال).
  • هر چه بتوانید یک سوال سریعتر حل کنید، امتیاز بالاتری از آن سوال دریافت می کنید (سرعت).
  • هر بار تلاش ناموفق مقدار ثابتی را از امتیاز شما خواهد کاست (دقت).
 

قوانین مرحله‌ نهایی - Final round rules

پنجشنبه, ۱۹ بهمن ۱۳۹۱، ۰۴:۴۵ ب.ظ
  • Each competitor must bring a laptop to participate in contest using it.
  • Competitors will have 3-4 hours to complete 5-8 programming tasks.
  • Competitors may solve problems by any means, which is, given an input file, they should submit a correct output in the specified time limit. Not submitting any file in the time limit will be considered as an unsuccessful attempt.
  • Both input and output format are crucial. Adhere them precisely to avoid getting solutions judged as wrong.
  • Competitors will be free to use any programming language, library or computational application to solve problems.
  • Competitors may bring and use any pre-written code, document, etc.
  • For some tasks, competitors should be able to run binary files on their laptops. In such cases, the binary file will be built statically and available for Windows and Linux in both 32-bit and 64-bit architectures.
  • All problem statements will be available in English, although for Iranian’s convenience a Persian translation may be provided. Note that the English statements will be the judge’s reference in case of any difference.
  • The decision of the head judge is final in all matters.
  • برگزارکننده مسابقه

نکات مهم درباره مرحله حذفی

پنجشنبه, ۱۱ آبان ۱۳۹۱، ۰۶:۲۰ ب.ظ
  • تلاش های ناموفق همانند روال قبلی مسابقات بیان، نمره منفی خواهند داشت.
  • از آنجا که تمامی کدهای ارسالی برای codeforces نیز وارد سامانه تقلب یابی خواهد شد، ممکن است اعلام قطعی نتایج کمی بیش از زمان اعلام شده به طول بیانجامد.
  • شرکت کنندگان ایرانی فقط و فقط از طریق سامانه آزمون بیان حق دارند در مسابقه شرکت کنند.
  • استفاده از بیش از یک حساب کاربری در حین مسابقه تقلب محسوب می شود.
  • برقراری ارتباط با سایر شرکت کنندگان در حین مسابقه تقلب محسوب می شود.
  • از ارسال پیام بی مورد برای داوران یا درخواست راهنمایی در حین امتحان خودداری نمایید. 

به امید دیدار شما در مرحله نهایی، موفق باشید !

  • برگزارکننده مسابقه

راه حل سوالات مسابقه‌ی انتخابی

سه شنبه, ۹ آبان ۱۳۹۱، ۰۶:۴۰ ب.ظ

همان‌طور که قبلاً وعده داده بودیم یک نمونه از راه حل های شرکت‌کنندگان را در ادامه منتشر می‌کنیم.

با تشکر از آیدین نصیری‌شرق (با نام مستعار EyeDean) که توضیحاتی را نیز درباره‌ی راه‌حل‌های خود ارسال کرده که به زودی در ادامه‌ی همین پست اضافه خواهد شد.

  • برگزارکننده مسابقه
  1. نکات کلّی
    • در تمامی مراحل انتخاب زبان برنامه‌نویسی آزاد بوده و استفاده از هر ابزاری مجاز است. برای حلّ سؤال، یک فایل ورودی در اختیار شما قرار می‌گیرد و در صورتی که بتوانید فایل خروجی صحیح را برای ما ارسال کنید نمره‌ی آن سؤال را دریافت خواهید کرد.
    • طریقه‌ی ثبت نام در پست قبلی بیان شده است.
    • پیشنهاد می‌کنیم برای آشنایی با روند حل سؤالات و ارسال پاسخ در مسابقه‌ی آزمایشی (که همواره در جریان است) شرکت کنید.
  2. مسابقه‌ی انتخابی
    • زمان: از ساعت ۱۲ ظهر ۴ آبان - الی ۱۲ ظهر ۶ آبان (۴۸ ساعت)
    • این آزمون شامل ۴ سؤال نسبتاً ساده است.
    • حلّ یک سؤال برای راه یافتن به مرحله‌ی بعد (مسابقه‌ی حذفی) لازم و کافی است. طبیعتاً محدودیتی برای صعودکنندگان به مرحله‌ی بعدی وجود ندارد.
    • زمان این مرحله به اندازه‌ی کافی طولانی در نظر گرفته شده تا مشکلات تداخل زمانی برای شرکت‌کنندگان به حدّاقل برسد.
    • این مرحله دارای سطح‌بندی (دانش‌آموزی و آزاد) نخواهد بود.
  3. مسابقه‌ی حذفی
    • زمان: از ساعت 7 بعد از ظهر (به وقت تهران) ۱۱ آبان - الی 10 بعد از ظهر ۱۱ آبان (۳ ساعت)
    • آزمون شامل ۶ سؤال با درجه‌های سختی متفاوت است.
    • این مرحله در دو سطح «دانش‌آموزی» و «آزاد» برگزار خواهد شد.
      • سؤالات برای هر دو سطح یکسان خواهد بود، اما رتبه‌بندی جداگانه برای سطوح ارائه می‌شود.
      • حداقل ۳۰ نفر به مرحله‌ی حضوری راه خواهند یافت.
      • ۱۰ نفر اول از میان دانش‌آموزان از این مرحله صعود خواهند کرد.
    • نکته: برگزاری مسابقه در سامانه‌ی آنلاین Codeforces؛ همان‌طور که اعلام شد، امسال میزبان شرکت‌کنندگانی از سایر کشورها نیز خواهیم بود. به همین دلیل مرحله‌ی حذفی را با سؤالات و شرایط مشابه و به صورت همزمان در Codeforces برگزار می‌کنیم. همان‌طور که در قوانین اعلام شده، راهیابی به مرحله‌ی نهایی از طریق Codeforces صرفاً برای شرکت‌کنندگان غیرایرانی است و ایرانیان مجاز به شرکت در این مسابقه نیستند.
  4. مرحله‌ی حضوری
    • زمان: نیمه‌ی دوم بهمن ماه
    • جزئیات بیشتر متعاقباً اعلام خواهد شد.

 

 

پی نوشت: ساعت برگزاری مسابقه حذفی اصلاح شد.

  • سید مهران خلدی

ثبت نام در مسابقه برنامه نویسی بیان رایگان و برای تمام شرکت کنندگان آزاد می باشد. ثبت نام در مسابقه نیاز مند ثبت نام در بیان می باشد، بنابر این چگونگی انجام ثبت نام در بیان در بخش اول و چگونگی ثبت نام در مسابقه در بخش دوم شرح داده شده اند. همچنین اگر قبلا عضو بیان بوده اید اما رمز عبور و یا نام کاربری خود را فراموش کرده اید، می توانید به بخش فراموشی رمز عبور در انتهای این پست مراجعه نمایید.

* در صورتی که سال قبل در مسابقه برنامه نویسی بیان شرکت کرده اید و یا قبلا در هر کدام از سرویس های بیان عضو بوده اید نیازی به اجرای دستور العمل بخش اول: ثبت نام در بیان نخواهید داشت.


بخش اول: ثبت نام در بیان

۱. به وبسایت بیان bayan.ir مراجعه کنید.

۲. روی دکمه  کلیک کنید.

۳. در بخش "اگر دعوت نامه دارید"، عبارت contest91 را در کادر سفید رنگ وارد نمایید و روی دکمه  کلیک کنید.

۴. فرم ثبت نام را تکمیل نمایید و پس از انتخاب گزینه "شرایط بیان را می پذیرم" روی دکمه  کلیک کنید.

۵. اگر پیغام خطایی با مضمون آدرس ایمیل قبلا استفاده شده است را دریافت کردید، احتمالا شما قبلا عضو یکی از سرویس های بیان شده بوده اید و یا در مسابقه سال گذشته شرکت کرده اید. در این صورت دستور العمل های بخش فراموشی رمز عبور را پیگیری نمایید.

۶. پس از ارسال فرم، یک ایمیل حاوی لینک فعال سازی حساب کاربری شما برایتان ارسال می شود. بعد از چک کردن ایمیل خود، روی لینک فعال سازی کلیک کنید تا مراحل ثبت نام شما در بیان تکمیل شوند.


بخش دوم: ثبت نام در مسابقه ۱۳۹۱

۱. به آدرس وبسایت مسابقه contest.bayan.ir مراجعه نمایید.

۲. اگر در کادر سمت راست دکمه  را مشاهده می نمایید به مرحله ۵ بروید.

۳. روی دکمه  کلیک کنید، اگر بعد از کلیک دکمه  را مشاهده نمودید به مرحله ۵ بروید، در غیر این صورت به وبسایت bayan.ir منتقل می شوید.

۴. با نام کاربری و رمز عبور خود وارد سیستم شوید. اگر هر کدام از آنها را فراموش کرده اید، دستور العمل های بخش فراموشی رمز عبور را اجرا کرده و سپس به اینجا برگردید.

۵. روی دکمه  کلیک کنید.

۶. در کادر سمت چپ لیست مسابقات را مشاهده می نمایید، روی  کلیک کنید.

۷. فرم ثبت نام در مقابل شما قرار می گیرد، لطفا فرم را با دقت پر نمایید.

۸. پس از پر کردن فرم ثبت نام در مسابقه، روی دکمه  کلیک کنید تا وارد محیط مسابقه شوید.


بخش فراموشی رمز عبور:

‍۱. به وبسایت بیان bayan.ir مراجعه کنید.

۲. روی دکمه  کلیک کنید و در کادر باز شده روی گزینه فراموشی رمز عبور کلیک کنید.

۳. در صفحه فراموشی رمز عبور، آدرس ایمیل خود را در کادر سفید رنگ وارد کنید و روی دکمه  کلیک کنید.

۴. یک ایمیل حاوی دستور العمل تعویض رمز عبور برای شما ارسال خواهد شد، همچنین نام کاربری شما در این ایمیل مشخص شده است.

  • مصطفی رکوعی

فرمول محاسبه امتیازات

شنبه, ۱۶ مهر ۱۳۹۰، ۰۸:۰۳ ب.ظ

فرمول امتیاز دهی مرحله اول

در این فرمول n تعداد افرادی است که یک مساله را حل کرده اند. T زمان کل مسابقه و t زمان پذیرفته شدن یک راه حل. w نیز تعداد دفعاتی است که یک فرد تلاش ناموفق دارد.

در این فرمول ۳ عامل موثر است:

۱- سختی سوال :‌ این عامل با تعداد کسانی که سوال را حل کرده اند رابطه عکس دارد.

۲- سرعت حل:‌  این فاکتور با هر چه که از زمان مسابقه می گذرد از امتیاز شما می کاهد.

۳- دقت در حل:‌ هربار تلاش ناموفق مقدار ثابتی از شما می کاهد.

 

فرمول امتیاز دهی مرحله دوم

در این فرمول درجه سختی سوال با شیب ملایمتری به سمت صفر حرکت می کند.

هر زمان که یک سوال را ۱۰۰ نفر یا بیشتر حل کنند، نشان دهنده این است که سوال آسان بوده و به واسطه سختی سوال چیزی به امتیاز شما اضافه نمی شود. به عبارت دیگر امتیاز سوال از ۱۰۰ محاسبه خواهد شد.

  • برگزارکننده مسابقه

 

قبل از شرکت در مسابقه به نکات زیر توجه کنید:

  • سیستم مسابقات از مروگرهای IE7 و پایین تر، Chrome 2 و پایین تر، firefox 3.5  و پایین تر پشتیبانی نمی کند. اگر در استفاده از سایت مسابقه با مشکلی مواجه بودید، حتما از مرورگرهای به روز تر استفاده کنید.
  • قابل توجه کسانی که با ویندوز کار می کنند:
    بیشتر زبانهای برنامه نویسی (جاوا، سی، پایتون، تمام زبانهای دات نت و ... ) فرمت فایل های ورودی را می فهمند و هیچ مشکلی با آن نخواهد داشت. به استثنای کسانی که با VB6 کار می کنند که توضیحات مربوط به آن در نمونه سوالات وجود دارد.
    اما اگر می خواهید خودتان هم وقتی فایل ها را باز می کنید با فرمت درستی ببنید می توانید با IDE های خود مثلا Visual Studio ، eclipse و یا با برنامه ++Notepad  فایل ورودی را باز کنید.
  • کسانی که در محیطهای IDE مثل Visual Studio یا eclipse کار می کنند دقت کنند که در قسمت "ارسال کد" تنها فایل کد خود که منطق برنامه در آن است را بفرستند نه تمام پروژه را. به عنوان مثال فایلهای با پسوند java, cpp, cs یا هر پسوند دیگری که نشان دهنده یک فایل کد است را ارسال کنید.
  • سیستم عامل و زبان برنامه نویسی تاثیری در پذیرش برنامه شما ندارد.
  • اگر در دریافت فایل ورودی دچار مشکل شدید، در زمان باقیمانده «دریافت دوباره فایل ورودی» را بزنید.
  • کسانی مشکل کار با فایل دارند به توضیحات نمونه سوالات مراجعه کنند.

 

  • برگزارکننده مسابقه

راهنمای مسابقه

دوشنبه, ۴ مهر ۱۳۹۰، ۱۰:۲۴ ب.ظ


ثبت نام در مسابقه

دعوت نامه بگیرید و آن را ارسال کنید:

وارد صفحه اول مسابقه (contest.bayan.ir) شوید و دکمه "ثبت نام" را کلیک کنید. پنجره ای باز می شود که در آن گفته شده contest90 را به عنوان کد دعوتنامه وارد کنید.

با تایید این پنجره وارد صفحه ای می شوید که از شما پرسیده شده "آیا شمادعوتنامه دارید؟". در این صفحه شما دکمه "بله دعوت نامه دارم" را کلیک کنید.

در صفحه بعد کد دعوت نامه را همانطور که گفته شده بود contest90 وارد کنید و دکمه "ارسال" را بزنید.

اطلاعات خود را ثبت کنید:

پس از ارسال دعوت نامه، شما وارد صفحه ثبت نام می شوید. اطلاعات خود را وارد کنید و مطمئن شوید که همه فیلدهای اجباری "تیک سبز" خورده اند، در انتهای صفحه متن موافقت نامه را تایید کرده و دکمه ارسال را بزنید.

اگر عملیات ارسال با موفقیت انجام شود در صفحه بعد پیغام "ثبت اطلاعات شما با موفقیت انجام شد" را مشاهده خواهید کرد. لینک فعال سازی همان لحظه به آردس ایمیل شما ارسال می شود.

حساب کاربری خود را فعال کنید:

وارد ایمیل خود شوید و لینک فعال سازی ارسال شده را کلیک کنید. با کلیک رو لینک، شما به "صفحه ورود" هدایت می شوید.

وارد سایت مسابقات شوید:

در "صفحه ورود" با استفاده از نام کاربری و کلمه عبور خود وارد سایت شوید. پس از ورود، لیست سرویس هایی را می بینید که به آنها دسترسی دارید. البته شما فقط به سرویس مسابقات برنامه نویسی دسترسی دارید. روی "مسابقات برنامه نویسی بیان" کلیک کرده و وارد سایت مسابقات (contest.bayan.ir) شوید.

در صفحه اول سایت مسابقات، دکمه "ورود" را کلیک کنید.



شرکت در مسابقه

در صفحه اول بر روی دکمه "شرکت در مسابقه" کلیک کنید. در صفحه بعدی لیست مسابقه ها را می توانید مشاهده کنید.
هنگامیکه برای اولین با در یک مسابقه شرکت می کنید، از شما نام مستعار و سایر اطلاعات تکمیلی پرسیده خواهد شد.

حتما قبل از شرکت در مسابقه، قوانین مسابقه را مطالعه نمایید.

مسابقه تمرینی (آزمایشی):

این مسابقه فقط برای آشنایی با نحوه کار وب سایت مسابقات، روی وب سایت قرار داده شده است و شرکت کردن در آن اختیاری است. ساده و ابتدایی بودن سوالات آن نیز به همین دلیل است. توصیه می شود حتما در این مسابقه شرکت کنید تا با قسمتهای مختلف وب سایت مسابقات آشنا شوید.

مسابقه دانش آموزی:

این مسابقه و سوالات آن برای دانش آموزان طراحی شده است.

مسابقه آزاد:

شرکت در این مسابقه برای عموم آزاد است. سطح سوالات این مسابقه بالاتر از مسابقه دانش آموزی می باشد.



صفحه مسابقه

منوی سمت راست در صفحه مسابقه، امکان مشاهده قسمت های مختلف را به شما می دهد. پنج قسمت "مساله ها"، "ارسال جواب"، "رده بندی"، "تاریخچه" و "ارتباط با داوران" در ادامه شرح داده شده است. همچنین امکان مشاهده مستقیم صورت هر مساله وجود دارد.

مساله ها

در این قسمت لیست مساله ها قرار دارد. با کلیک روی عنوان هر مساله، صفحه مربوط به آن مساله دیده می شود.

عموما هر مساله شامل ۴ بخش است که در بخش اول صورت سوال توضیح داده می شود. در بخش دوم ورودی مساله و در بخش سوم خروجی مساله شرح داده می شود. در بخش چهارم نیز برای درک بهتر مساله، نمونه ای از داده های ورودی و خروجی نمایش داده می شود.

شما باید صورت سوال را با دقت بخوانید و برنامه ای بنویسید که ورودی مورد نظر را دریافت نموده و خروجی مطلوب را تولید نماید. دقت نمایید که ابتدا برنامه را با نمونه ورودی و خروجی نمایش داده شده امتحان کنید و پس از اطمینان از صحت آن، اقدام به دریافت فایل وروی اصلی نمایید.

ارسال جواب

پس از اینکه از صحت عملکرد برنامه خود مطمئن شدید، به این قسمت بیایید و روی دکمه "دریافت ورودی جدید" کلیک کنید تا فایل ورودی اصلی را دریافت نمایید. اگر در دانلود ورودی به مشکلی برخوردید، "دریافت دوباره فایل ورودی" را کلیک کنید تا همان فایل ورودی دوباره برای شما ارسال شود.

برنامه خود را بر روی فایل دریافت شده اجرا کنید. سپس از طریق دو قسمت "خروجی برنامه" و "کد برنامه" فایل خروجی تولید شده و همچنین فایل کد برنامه خود (source code) را ارسال (upload) نمایید.

دقت نمایید که بلافاصله بعد از کیلک روی دکمه "دریافت ورودی جدید"، یک شمارنده آغاز به کار می کند و شما تا تمام شدن آن فرصت دارید که خروجی را ارسال کنید. در صورت ارسال نشدن خروجی در زمان خواسته شده، برای شما یک ارسال اشتباه ثبت می شود. پس قبل از اینکه از صحت عملکرد برنامه خود مطمئن نشدید اقدام به دریافت فایل ورودی ننمایید.

با هر بار کلیک روی دکمه "دریافت ورودی جدید"، یک فایل جدید برای شما ارسال می شود.

قسمتهای تاریخچه و رده بندی

در این قسمت می توانید نتیجه کار خود و همچنین سایر شرکت کنندگان را مشاهده نمایید. در منوی اصلی نیز در کنار لینک هر مساله، نتیجه نمایش داده می شود.

ارتباط با داوران

شما می توانید مشکلات خود را در قسمت "ارتباط با داوران" با برگزارکنندگان مسابقه درمیان بگذارید. اگر امکان پاسخ دهی وجود داشته باشد، در قسمت بالای صفحه یعنی "پیامهای داوران" پاسخ سوال خود را خواهید دید. مطالب عمومی مطرح شده توسط داوران نیز در این قسمت نمایش داده می شود. پس در طول برگزاری مسابقه در زمانهای مختلف این قسمت را مشاهده کنید.

 

سوالات متداول

سوال ۱:‌ مسابقه تمرینی چیست؟
جواب:‌ هدف از مسابقه آزمایشی صرفا آشنایی شما با سایت مسابقه و تمرین کار با سایت است. سوالات این مسابقه به همراه جواب آنها در ۵ زبان در بخش نمونه سوالات قرار گرفته است. برای آشنایی با نحوه نگارش سوالات و ارسال جواب، شرکت در مسابقه آزمایشی اکیدا توصیه می شود. شرکت در این مسابقه اجباری نیست و امتیاز آن هیچ تاثیری در رده بندی شما در مسابقه اصلی ندارد.

سوال ۲:‌ آیا می توان در هر دو مسابقه آزاد و دانش آموزی شرکت کرد؟
جواب:‌ شرکت در مسابقه دانش آموزی فقط برای افراد زیر ۱۸ سال آزاد است. ولی برای شرکت در مسابقه آزاد هیچ محدودیتی وجود ندارد. ولی با توجه به اینکه مرحله دوم مسابقه آزاد و مرحله اول مسابقه دانش آموزی در یک روز برگزار می شود، شرکت در هر دو توصیه نمی شود.

سوال ۳:‌ چگونه می توانید سن افرادی که در مسابقه دانش آموزی شرکت می کنند را بررسی می کنید؟
جواب :‌ مسابقه نهایی به صورت حضوری برگزار می شود. یعنی قبل از شرکت در مسابقه نهایی مدارک شرکت کنندگان بررسی می شود و در صورت نقض قوانین از شرکت فرد در مسابقه نهایی ممانعت به عمل می آید.

سوال ۴:‌ آیا محدودیتی در استفاده از مروگر وجود دارد؟
جواب:‌ سعی شده است که بتوانیم از تعداد زیادی از مرورگرها پشتیبانی کنیم. ولی برای اطمینان از مروگرهای جدیدتر استفاده کنید.

سوال ۵:‌ نحوه محاسبه امتیاز چگونه است؟
جواب:‌ به هر سوال حل شده شما ۱ امتیاز داده می شود. سپس درجه سختی سوال به آن اضافه می شود. درجه سختی از روی تعداد افرادی که سوال را حل کرده اند به دست می آید.
سپس دو مقدار از عدد بدست آمده کم می شود.
یکی ضریبی متناسب با زمان حل مساله. یعنی هر چه دیرتر حل کنید عدد بیشتری از شما کم می شود.
دیگر ضریبی از تعداد پاسخها نادرستی که به این سوال داده اید. یعنی هر چه برای یک سوال پاسخهای نادرست بیشتری بفرستید عدد بیشتری از شما کم می شود.

سوال ۶: آیا کسانی که با سرعت کم به اینترنت متصل می شوند، می توانند از در این مسابقه شرکت کنند؟
جواب:‌ زمان تعیین شده برای حل هر سوال به گونه ای برنامه ریزی شده که شما بتوانید با سرعت کم هم در مسابقه شرکت کنید. ولی استفاده از اینترنت سرعت بالا کار شما را تسهیل می کند.

سوال ۷: فایل ورودی و خروجی چیست؟‌ چگونه می توان با فایل کار کرد؟
جواب:‌ شما هنگامی که سوال خود را حل کردید و با ورودی های تستی آن را آزمایش کردید در خواست ورودی اصلی را می کنید. با این درخواست سیستم به شما یک فایل ورودی می دهد که شما باید آن را به برنامه خود بدهید. خروجی تولید شده از برنامه شما همان جوابیست که باید به عنوان فایل خروجی برای ما ارسال کنید. این فایل را به همراه کد برنامه خود برای سیستم ارسال می کنید.
   نکته‌: در مورد کار با فایل در انتهای نمونه سوالات راهنمایی لازم انجام شده است.

سوال ۸:‌ آیا می توان سوالات را با زبانهای برنامه نویسی متفاوتی حل کرد؟ اگر می شود، از زبانی که در ابتدای مسابقه تعیین کردیم، چه استفاده ای می کنید؟
جواب:‌ بله. شما می توانید کد هر سوال را با زبان متفاوتی از سوال های دیگری که حل کرده اید، بنویسید. حتی می توانید برای حل یک سوال از زبانها و تکنولوژیهای متفاوتی استفاده کنید. اطلاعاتی که شما از زبان برنامه نویسی مورد علاقه خود به ما می دهید صرفا برای آمارگیری بوده که در انتهای مسابقه هم منتشر می شود. یعنی شما می توانید سوالهای مسابقه را با زبانی متفاوت از آنچه در ابتدا گفته اید حل کنید.


 

  • برگزارکننده مسابقه

قواعد فنی مسابقه

دوشنبه, ۴ مهر ۱۳۹۰، ۱۰:۰۷ ب.ظ

سوالات


هر مسابقه شامل 5 مساله می باشد که شرکت کنندگان مدت 3 ساعت برای حل آنها زمان دارند. شکل کلی مسائل به این صورت است که از شرکت کنندگان خواسته می شود با نوشتن یک برنامه ی کامپیوتری خواسته های مساله را برآورده کنند.
برای هر مساله شکل دقیق ورودی که برنامه باید دریافت نماید و هم چنین شکل دقیق خروجی که باید تولید نماید مشخص شده است.
مسائل به گونه ای طراحی شده اند که در هر کدام از آنها توانایی های مختلف شرکت کنندگان مورد آزمایش قرار می گیرد. این توانایی ها شامل تسلط بر زبان برنامه نویسی مورد استفاده، آشنایی با الگوریتم های محاسباتی و ریاضیاتی، آشنایی با ساختار داده های مختلف و... می باشند. سطح پیچیدگی سوالات به گونه ای انتخاب شده است که شرکت در مسابقه برای تمام افراد آشنا با برنامه نویسی امکان پذیر می باشد. همچنین سوالات هر مسابقه به ترتیب سختی مرتب شده است، اما توصیه می شود ابتدای مسابقه تمام سوالات خوانده شوند.
متن تمام مساله ها در وبسایت مسابقه در زمان برگزاری قابل رویت می باشد، هم چنین شرکت کنندگان می توانند مساله ها را در فرمت PDF به صورت یکجا یا جدا جدا دریافت کنند.

 

حل سوالات


روش حل هر سوال در مسابقه به این شکل است:
مطالعه دقیق سوال : شرکت کنندگان باید با توجه به توضیحات صورت سوال و مثال های ورودی و خروجی برنامه ای بنویسند که ورودی را در فرم گفته شده قبول کرده و خروجی مناسب را در فرم خواسته شده تولید نماید.
پیاده سازی راه حل سوال‌: شرکت کنندگان می توانند سوالات مسابقه را با زبان برنامه نویسی دلخواه خود حل کنند.
درخواست و دریافت ورودی:‌ هنگامی که شرکت کننده از برنامه ی خود مطمئن می شود؛ برای ارسال راه حل خود در قدم اول در قسمت حل وبسایت مسابقه، درخواست «حل سوال» می دهد. وبسایت مسابقه لینک دانلود ورودی مساله را به کاربر نشان می دهد و کاربر از این لحظه به مدت مشخصی که در صورت سوال مشخص شده است فرصت برای ارسال خروجی جواب مساله دارد. زمان باقیمانده برای ارسال خروجی در وبسایت به صورت شمارش معکوس به شرکت کننده نمایش داده می شود.
نکته مهم این است که به ازای هر بار درخواست سوال ورودی های متفاوت ارسال میشود. در نتیجه وبسایت منتظر دریافت خروجی متناظر با آخرین ورودی ارسال شده است.
تولید خروجی:‌ شرکت کننده ورودی دانلود شده را به برنامه ی خود می دهد و خروجی برنامه را به صورت یک فایل متنی تولید می کند. نکته مهمی که دوباره در این قسمت به آن اشاره می کنیم این است که کسانی که برای یک سوال چند بار درخواست حل داده اند دقت کنند که حتما آخرین ورودی را به برنامه خود می دهند.
بارگذاری خروجی: خروجی تولید شده توسط برنامه را به همراه کد برنامه باید تا قبل از به اتمام رسیدن زمان حل مساله در وبسایت بارگذاری می نماید تا سیستم داوری مسابقه روی خروجی ارسال شده قضاوت انجام دهد. اگر این عمل در زمان مشخص شده انجام بگیرد خروجی به سیستم داوری برای قضاوت در مورد درستی جواب منتقل می شود، وگرنه برای کاربر یک جواب اشتباه در نظر گرفته می شود.

لازم به ذکر است که سیستم داوری خودکار می باشد و در صورتی که برنامه ی حل شده خروجی را دقیقا در فرم خواسته شده تولید نکند منجر به اشتباه فرض شدن خروجی خواهد شد.

 

دریافت نتیجه ارسال

تا دقایقی بعد از حل یک سوال و ارسال جواب آن در وبسایت، نتیجه ی قضاوت روی وبسایت اعلام می گردد. نتیجه ی قضاوت در مسابقه می تواند یکی از گزینه های قبول شده، اشتباه و اتمام زمان باشد. گزینه ی اتمام زمان مربوط به زمانی است که خروجی مسابقه در فرصت مقرر به سیستم ارسال نشده باشد و معادل یک بار حل اشتباه می باشد. گزینه ی اشتباه به معنی آن است که خروجی ارائه شده با خروجی مورد انتظار متفاوت می باشد. دقت کنید با توجه به خودکار بودن سیستم قضاوت، فرم خروجی برنامه باید دقیقا منطبق با فرم خروجی مثال مساله باشد، وگر نه اشتباه در نظر گرفته می شود. در صورت دریافت جواب اشتباه و یا اتمام زمان، شرکت کننده همچنان می تواند درخواست حل دوباره بدهد و محدودیتی برای این کار وجود ندارد. جواب قبول شده مربوط به زمانیست که خروجی ارسال شده مورد قبول سیستم داوری است و شرکت کننده امتیاز آن سوال را دریافت می کند.
 

محاسبه امتیاز

در محاسبه ی امتیاز هر سوال چهار ملاک مهم مورد نظر می باشد. اول درستی حل سوال می باشد، دوم زمان حل سوال، سوم تعداد تلاشهای ناموفق برای حل آن سوال و در آخر تعداد افرادی که سوال را حل کرده اند. به این شکل که سوال حل نشده یا اشتباه حل شده صفر امتیاز دارد، اما سوال حل شده بر اساس معیار های ذکر شده برای شرکت کننده امتیاز خواهد داشت. امتیاز هر سوال هرچه زودتر حل شود بیشتر است و هرچه توسط شرکت کنندگان بیشتری حل شود کمتر است.
رابطه ی محاسبه ی امتیاز تابعی از تعداد شرکت کنندگانیست که سوال را حل کرده اند و مقدار زمانی است که هنگام ارسال جواب پذیرفته شده از مسابقه گذشته است. هم چنین هر گاه سوالی پذیرفته شود، هر بار تلاش ناموفق برای یک سوال از امتیاز آن سوال حل شده می کاهد. در نتیجه تلاشهای ناموفق شما تا هنگامی که آن سوال را حل نکنید، هیچ تاثیری در امتیاز شما نخواهد داشت.
رده بندی شرکت کنندگان براساس جمع امتیازات نهایی آنها می باشد. توجه کنید که با توجه به تاثیر تعداد شرکت کنندگان حل کننده ی سوال در امتیاز آن، امتیاز کل یک شرکت کننده می تواند به مرور زمان کم شود.

 

توضیح ها و اعلان ها

در صورت نیاز شرکت کنندگان می توانند مراجعه به وبسایت در مورد ابهام در صورت سوالات و... از تیم برگزاری مسابقه درخواست توضیح نمایند، و یا نکته ای را اعلام نمایند. این درخواست ها فقط توسط تیم برگزار کننده قابل دیدن می باشد. هم چنین تیم برگزاری در صورتی که نیاز باشد با ارسال اعلان عمومی و یا اعلان در مورد یک سوال خاص توضیحاتی در باره ی آن را به تمام شرکت کنندگان اعلام می کند. این اعلان ها نیز در وبسایت قابل رویت می باشند.
 

چند نکته جوانمردانه

مسابقات به صورت تک نفره برگزار می شود و از شرکت کنندگان محترم نیز تقاضا می شود، به صورت انفرادی در مسابقه شرکت نمایند.
با توجه به انفرادی بودن مسابقه شرکت کنندگان باید از هدیه دادن کد سوالات به یکدیگر خود داری نمایند. همانطور که قبلا توضیح داده شد، کد راه حل سوالات باید همراه با جواب سوال برای سیستم داوری ارسال شود، بنابر این استفاده از یک کد توسط چند نفر امکان پذیر نخواهد بود و ممکن است منجر به تغییر نتیجه ی حل از سوی تیم داوری گردد. در نتیجه امتیازات کسب شده تا انتهای مسابقه به هیچ عنوان قطعی نبوده و در صورت مشاهده مواردی از نقض قانون امتیاز فرد خاطی تغییر خواهد کرد.

  • برگزارکننده مسابقه