جمعه, تیر 26. 1388IAUM CCC 6 - Online Round 0امروز مسابقه ی آنلاین اول IAUM CCC 6 برگزار شد. سه سوال از 7 سوال توسط من طرح شده بود. در این پست، ابتدا انتقاداتی از طرز انتقاد مسابقه دهندگان می کنم، و سپس به توضیح کوتاهی در باره ی سوال ها می پردازم. سه سوال A و B و G توسط من طرح شده بود. برای دریافت صورت سوال ها، به آدرس http://pykello.net/iaumc3-6-0.tar مراجعه کنید. البته صورت سوال B در مسابقه یک اشتباه تایپی داشته که در این نسخه درست شده است. سوال A مشکل خاصی نداشت، راه حل من که سعی کردم کندترین راه حل معقول باشد( از مرتبه ی زمانی (O(n^2 بود)، در کمتر از یک ثانیه اجرا می شد. سوال آسانی بود، و وقتی کد طولانی برخی شرکت کنندگان را دیدم بسی تعجب کردم. و واقعا چگونگی دست یافتن برخی شرکت کننده ها به نتیجه ی Time Limit Exceeded واقعا حیرت آور بود. به هر حال، عده ای به طرز Judge شدن این سوال معترض بودند که دلیلش را نمی دانم. من هم جزو Judge ها نبودم تا دلیل اعتراض آن ها را بدانم. داده های تست مشکلی نداشت. تعداد زیادی از افراد با اینکه در صورت سوال ذکر شده بود نقطه ای با مختصات (0,0) در ورودی نیست، باز هم وجود چنین نقطه ای را سوال می کردند. سوال B ... معترضین به این سوال سه دسته بودند. دسته ای که معنی "متوسط" را بلد نبودند، و صورت سوال را مبهم می دانستند. اولا اینکه در صورت تمایل دوستان، می توانم بیش از 10 سوال مشابه پیدا کنم که بدون تعریف معنی متوسط، مقدار متوسط را خواسته بودند. پس اینکه تعریف "متوسط" را شخصی بلد نیست، ضعف در صورت سوال محسوب نمی شود. مبهم دانستن این مساله مانند این است که عدم ذکر معنای کوتاه ترین مسیر در مساله ی گراف را دلیل مبهم دانستن آن سوال بدانیم. سوال G، تقریبا کسی به طور جدی به این سوال نپرداخت، با اینکه از لحاظ ایده ای سخت نبود، ولی شاید پیاده سازی اش کمی طول می کشید و سوال های دیگر زمانی برای این سوال باقی نگذاشته بودند. در باره ی ایده ها: تنها به توضیح مختصری و کدها بسنده می کنم. ممکن است در آینده توضیح بیشتری بنویسم! سوال A: برای دیدن کد من برای این سوال به http://wiki.pykello.net/doku.php?id=implementation:iaum_c3_6_sight مراجعه کنید. تنها نکته ای باید در نظر می گرفتید این بود که مثلا اگر دو نقطه در (1,1) و (1-,1-) قرار داشته باشند، هر دو نقطه را می بینیم، با اینکه نسبت x/y هر دو یکسان است. سوال B: برای مشاهده کد من برای این سوال به http://wiki.pykello.net/doku.php?id=implementation:iaum_c3_6_kconsecutive مراجعه کنید. کسانی که با معنای "متوسط" یا "امید ریاضی" در نظریه ی احتمال آشنا نیستند، به http://en.wikipedia.org/wiki/Expected_value مراجعه کنند. فرض کنید [expDays[i برابر با تعداد متوسط روزهای لازم برای اینکه عمل سکه انداختن تمام شود با فرض اینکه i دفعه ی قبلی نتیجه سکه انداختن ها شیر بود، باشد. همانطور که معلوم است، expDays[k] = 0 است، چون k بار شیر پشت سر هم رخ داده است و بازی تمام شده است. در غیر اینصورت، expDays[i] = expDays[i+1] * p + expDays[0] * (1-p) + 1 است. عدد 1، برای این است که حتما یک بار سکه پرتاب می کنیم. با احتمال p، به حال [expDays[i+1 میرویم، یعنی به تعداد شیرهای پشت سرهم یکی اضافه می شود. و با احتمال q=1-p، به حالت [expDays[0 می رویم، یعنی تعداد شیرهای پشت سرهم به صفر می رسد. تابع calcDays در واقع این دنباله را محاسبه می کند. تابع calcMoney نیز از روشی مشابه ولی کمی پیچیده تر برای محاسبه متوسط پول استفاده می کند. سوال G: برای مشاهده ی کد من برای این سوال، به http://wiki.pykello.net/doku.php?id=implementation:iaum_c3_6_grid مراجعه کنید. راه حل مطلوب این سوال، از نوع برنامه سازی پویا بود. حالت برنامه سازی پویا نیز (شماره سطر، شماره ستون، بیت های لازم از وضعیت سطر بالا، بیت های لازم از وضعیت سطر فعلی) است. اگر این مدل را بصورت بدیهی پیاده سازی کنید، مسلما تعداد حالات خیلی زیاد خواهد بود. ولی باید دقت کنید در این مساله وضعیت سطری به طول n حداکثر می تواند (F(n) = F(n-1) + F(n-3 حالت داشته باشد، که برای n=30، کمتر از 500000 حالت می شود که زیاد نیست. با کمی طراحی خوب، می توان در بدترین حالت در زمان کمتر از 2 ثانیه به هر ورودی جواب داد. خوب :) دوست دارم نظرتان در باره ی سوال ها را بدانم. لطفا کامنت یا ایمیل ارسال کنید! |
Me
Me = { "Name": "Hadi", "Job": "Programmer", "Hobbies": [ "Thinking", "Reading", "Walking", "Living" ], ... } Favorite LinksCategoriesSyndicate This BlogBlog AdministrationWeblog Statistics |

salam
agha hadi benazare man soalha khub bud makhsusan ba soale B kheyli hal kardam vali vaghean nemidunam systeme judge che moshkeli dasht man sare soale D divune shodam code badihish bara man TimeLimit mishod vali hame hamin tori zade budan man akharesh ba Selection (k'th smalest number) tunestam halesh konam, pouria ham hamin moshkel ro dasht un sare A va C ham hamin badbakhtiha ro keshide bud.
khaste nabashi
pooya soal e D ke sooje bood asan, ba MSVC TLE mishod vase man, ba g++ wrong mishod!!!!!!!!!!akharesham ba g++ ba 1 badbakhti gereftamesh.
Vali Hadi khodaiesh 1 modele khassi judge mishod, asan roie TLE o Wrong nemishod hesab kard, bebin sade tarin chizhaiee ke toie contest haie dge hatman roayat mikoni, emrooz bikhial mishodi AC mishod, masalan soal e D gofte bood max_n=1000000 bad man ba cin gereftamesh akhar!!!!! (ba scanf wrong mishod) oon soal e C ham haminjoor, oonam ba scanf moshkel dasht cin kardam dorost shod (vaseie long long mage nabaiad zad scanf("%I64d",&x)???), asan 1 systemi bood. ya masalan E o F ke test data o soorat e soaleshoon moshkel dasht, vaghti clar zadam taghriban 30 40 min bad javab dadan, hamin chiza contest ro kharab mikone dge, hala man shans avordam akharesh jam shod soal ha . albate B ro natoonestam hal konam vali dar noe khodesh jaleb bood ke baradare azizemoon toie 1 sa@ o khoordeiee AC shodan(ba submit e aval)=D>
تو صورت سؤال اول گفته شده بود: «...به طوری که هیچ دو نقطهای در یک مختصات قرار ندارند...» ولی به عنوان مثال تو تستکیس ۲ سه نقطه با مختصات (۱و ۱) اومده و تو تستکیسهای دیگه این مطلب به وفور یافت میشد. من چون چندتا رانگ گرفته بودم روی ورودی شک داشتم و شرایطی که تو صورت سؤال گفته شده بود رو چک میکردم و اگه برقرار نبود کدم باید ران تایم میشد که با توجه به ورودی این اتفاق هم پیش مییومد ولی برام رانگ میفرستادن. فکر کنم حداقل ۳-۴تا رانگ این جوری گرفتم
Man ham kolli hal kardam Pooya teyye zamane ziadi tanha kasi bood ke B ro hal karde bood :) Eyval :)
Dar zemn, soal e B bardasht e "eshtebahe" man az een soal bood: http://acm.pku.edu.cn/JudgeOnline/problem?id=3682 ke kami asoontare. Ya'ni man avval fekr kardam bayad consecutive bashe, ba'd hal kardam wrong shodam, vali ba'de eenke dorost kardam code am ro negah dashtam ta be onvane soal e jadid estefade konam :)
@Saman: Dorost e. Vali jalebe kasi be een gir nadad sare contest. Sorry for that.
@Saman: Test dataye sahih dorost mikonam ta re-judge beshe. Baz ham sorry baraye vaghti ke talaf shod.
@Hadi Na khahesh mikonam in harfa chiyeh taghsireh khodam bud keh wrong ziyad gereftam va inkeh bad az yeh bar submit kardan beh manzureh testeh vorudi bayad "throw 1" ro comment mikardam keh injuri nasheh. raheh haleh avalam barayeh in soal estefadeh az mokhtasateh ghotbi bud. miyoomadam noghat ro beh mokhtasateh ghotbi tabdil mikardam va badesh unaee keh yeh zaviyeh yeksani dashtan ro yeki dar nazar migereftam nemidunam beh khatereh suti double ya suti code man bud keh faghat tu yeh test case unam yeh vahed ekhtelaf ba judge dashtam. badesh raheh halam ro avaz kardam va taghriban shabiheh raheh haleh shoma shod keh codam yeh ghadri suti dasht va ru unam wrong khordam va vaghti keh code ro dorost kardam tasmim gereftam keh vorudi ro ham check konam! eshtebaheh asasi az khodam bud na az shoma
heyf shod, manam mikhastam sherkat konam.
nafahmidam keye contest.
mer30 az soala.
nazare man rajebe system judge contest be sorat kholase in hast:
SUPER LOW QUALITY CONTEST!!!
faghat be hamin basande konam ke baraye soal A rahe nlog(n) ke mizadam ham time shod va digar hich!
soala ha khob bood. agar che eshkal dar test case va sorat chandin soal be nazare man natijeye contest ro faghede rasmiat mikone. toye TC ye soal kochiktarin eshkali dashte bashe oon SRM rate nemishe. zemne inke soale D fogholade zaief bood. toye in soal tarah za'f tarahiye khoodesh ro mikhast dar nokate ghadimi va maskhareie mesle truncate kardan (va na round kardan) beposhone ke khoob albate movafagh nashod.
be har hal baz ham mamnoon az zahmati ke keshide shod. (hadeaghal az vaghti ke gozashte shod) heif az bazi az soala ke dar chenin contesti hadar raft. faghat omidvaram ke in moshkelat baraye doostani ke dar mosabegheye onsite sherkat mikonand be vojood nayad.
PS: dar omidvari bozargtar: be omide an roz ke ye contest interneti dorosto hesabe dar iran bargozar beshe.
@Pouria: Fekr konam contest e online AAPC khoob bood :)
Soal e A ke moshkel az man bood ta hodoodi, chon yeki az shart haye soorate soal ro ra'ayat nakarde boodam. Albatte fekr nakonam monjar be time limit mishod een moshkel. Be bargozar konande ha khabar midam taa check konan.
Saol e B, faghat yek "posht e sare ham" ro mistype karde boodam.
Dar zemn, soal e G ro sa'y konid hal konid. Fekr konam jaleb bashe, va ehtemalan be moredi moshabeh too ayande bar bekhorid, ke rahe halle nesbatan badihiye bad baa kami taghyirate koochik tabdil mishe be rahe halle ghabele ghabool.
Omidvaram contest e farda khoob bargozar beshe, va contest e onsite ham dar haddi ke betoonam sa'y mikonam khoob bargozar beshe.
Parsal contest e onsite moshkel bood, vali chon khodam jozve judge ha boodam zood bartaraf shodand, va fekr konam sherkat konande ha motavajjehe aksarasheoon nashodand. Ya'ni har soali ke shak mikardam bug dare ro zood check mikardam :)
البته وقتی بیرون گود هستی توقع یه کانتست
بدون اشکال خیلی راحته
باید حد اقل یه بار یه مسابقه در سطح حداقل متوسط برگزار کنی تا متوجه بشی چه کار سختیه
مثل فوتبال امکان اشتباه داوری همیشه هست
Chand nokte:
1. Mishod eshkal ha ro kheyli kamtar kard ba kami kaar e bishtar. masalan haman soal e A (eshkale test case) va soal e B (eshkale type) ro mishod be rahati va ba yek bar check ma'mool bartaraf kard, ke mota'sefane anjam nashod. Shayad be khater e een bood ke soal e A ro ziadi daste kam gerefte boodam!
2. Albatte een contest fargh mikone, vali vaghti too contest haye TC test-data moshkel dare re-judge mikonan, va ba'd rate mishe. Dar soorati rate nemishe ke a. soorate soal mobham bashe, b. solution davar az lahaze theory moshkel dashte bashe, ya mavarede moshabehi ke mosabeghe ro unfair mikone.
Albatte soale A mosabeghe ro kami unfair kard, vali hadde aghal do mosbeghe midunam (masalan World Final 2007, va ye contest Site Tehran ke daghighan nemidunam kodoom sal bood) ke test-data mosabeghe ro unfair kard, vali mosabeghe batel nashod.
Be har hal, omidvaram dar contest haye ba'di moshkel dar een had pish nayad.
Albatte yek farde ba tajrobe, vaghti kamelan motma'enne eshkal az judge hast, va mitune ba'de mosabeghe judge ro ghane kone, sare mosabeghe ziad be soale khassi gir nemide ta vaghtesh alaki talaf beshe. makhsoosan dar een mosabeghe ke test-data release shod va mishod be rahati solution ha ro be soorate local ba'de contest test kard va report kard ke moshkeli hast ya na.
Khaste nabashi, doa kon farda sob bidar sham sherkat konam.
Enghad hal mikonam mibinam ACM mese sag faali :-D Hesse nostalgic :-D
Khejalat nemikeshi?! beshin sare darset baba!
Salam agha hadi.
soale B gire alaki nadasht agha hadi va man bi ensafi kardam va haminja eteraf mikonam ke oon shakhs man boodam :d
vali soalhaye A va C va D moshkele TLE bikhodi dasht ke baes shod kollan kheyliha az contest kharej beshan.
Hadi bache hatoon azat khoob hesab mibarana, hame behet migan AGHA Hadi...