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