امروز فینال مسابقات بین المللی برنامه نویسی ICPC 2019 در شهر پورتو پرتغال برگزار می شود و نمایندگان دانشگاه ITMO و سایر تیم ها از دانشگاه های روسیه، چین، هند، آمریکا و سایر کشورها در آن شرکت خواهند کرد. بیایید با جزئیات بیشتر به شما بگوییم.
icpcnews /flickr/ CC BY / عکس هایی از فینال ICPC-2016 در پوکت
ICPC چیست؟
ICPC یک مسابقه بین المللی برنامه نویسی بین دانش آموزان است. آنها بیش از 40 سال برگزار شده اند - اولین فینال گذشت در سال 1977 انتخاب در چند مرحله انجام می شود. دانشگاه ها بر اساس منطقه (اروپا، آسیا، آفریقا، آمریکا و غیره) تقسیم می شوند. هر یک از آنها میزبان مراحل میانی، به ویژه نیمه نهایی اوراسیا شمالی هستند در دانشگاه ما انجام شد. برندگان مراحل منطقه ای در فینال شرکت می کنند.
در ICPC، از تیمهای سه شرکتکننده خواسته میشود تا با استفاده از یک کامپیوتر (به اینترنت متصل نیست) تعدادی از مشکلات را حل کنند. بنابراین، علاوه بر مهارت های برنامه نویسی، مهارت های کار گروهی نیز مورد آزمایش قرار می گیرد.
در طول مسابقات، تیم ها یک کامپیوتر دریافت خواهد کرد برای سه نفر اوبونتو 18.04 را اجرا می کند و vi/vim، gvim، emacs، gedit، geany و kate از پیش نصب شده است. شما می توانید برنامه ها را در پایتون، کاتلین، جاوا یا سی پلاس پلاس بنویسید.
هنگامی که یک تیم مشکلی را حل می کند، آن را به سرور آزمایشی ارسال می کند که کد را ارزیابی می کند. شرکتکنندگان نمیدانند دستگاه در حال انجام چه آزمایشهایی است. اگر همه آنها موفق باشند، تیم امتیاز پاداش دریافت می کند. در غیر این صورت خطایی ایجاد می شود و دانش آموزان برای تصحیح کد ارسال می شوند.
طبق قوانین ICPC، تیمی که بیشترین مشکلات را حل کند برنده است. اگر چندین تیم از این دست وجود داشته باشد، برنده با کمترین زمان پنالتی مشخص می شود. شرکت کنندگان برای هر مشکلی که حل می شود دقایق پنالتی دریافت می کنند. تعداد دقیقه برابر است با زمان شروع مسابقه تا قبولی کار توسط سرور آزمون. اگر تیم راه حلی پیدا کند، به ازای هر تلاش نادرست برای پاس دادن، بیست دقیقه دیگر جریمه دریافت می کند.
icpcnews /flickr/ CC BY / عکس هایی از فینال ICPC-2016 در پوکت
نمونه مشکلات
اهداف قهرمانی نیازمند هماهنگی و تمرکز تیمی است. علاوه بر این، آنها دانش الگوریتم های ریاضی فردی را آزمایش می کنند. در اینجا نمونه ای از کاری است که به شرکت کنندگان در ICPC 2018 ارائه شده است:
در تایپوگرافی، اصطلاح "رودخانه" وجود دارد - این دنباله ای از فضاهای بین کلمات است که از چندین خط متن تشکیل شده است. یک متخصص رودخانه (واقعاً) می خواهد کتابی منتشر کند. او میخواهد هنگام چاپ با فونت تکفاصله، طولانیترین رودخانههای چاپی روی صفحه شکل بگیرند. شرکتکنندگان باید عرض فیلدهایی را که در آن این شرط برآورده میشود، تعیین میکردند.
در ورودی، برنامه یک عدد صحیح n (2 ≤ n ≤ 2) دریافت کرد که تعداد کلمات متن را تعیین می کند. بعد، متن وارد شد: کلمات در یک خط با یک فاصله از هم جدا شده بودند و نمی توانستند بیش از 500 کاراکتر داشته باشند.
در خروجی، برنامه باید عرض میدان هایی را که در آن طولانی ترین "رودخانه" تشکیل می شود و طول این رودخانه را نشان می داد.