IAUM CCC 3

Thursday, August 24, 2006

CCC3 Finals Scoreboard

It's over here.

CCC3 Finals Scoreboard

It's right here.

Round Two Scoreboards

The scoreboard for the first match is here, and over here's the scoreboard for the second match.
The first six of each match advanced directly to the finals, in addition to the best remaining 8 contestants between the two matches. (Effectively, that means 10 from each match advanced.)

The final round scoreboard, problem statements and input/output data will be posted shortly.

Tuesday, August 22, 2006

IAUM CCC 3 Finalists!

Hi everybody!

These are the CCC3 finalists. Congratulations to them, and nice work everyone else! We hope that we see all of you at the finals, the contestants and the others who are welcome to join us and watch the progress.
Sorted alphabetically on last name, the contestants are:
  • Hossein Azizpour
  • Abdorrahim Bahrami
  • Farshad Barahimi
  • Azar Dadvar
  • Ali Dehghan
  • Golnaz Ghiasi
  • Behzad Helli
  • Mahmood Karimian
  • Andisheh Keikha
  • Alireza Lavasani
  • Hamid Mansouri
  • Mahdi Milani Fard
  • Mohammad Moghimi
  • Hadi Moshayedi
  • Arsalan Mousavian
  • Shayan Ostad Hassan
  • Sarah Sharifian
  • Mohsen Vakilian
  • Mohammad Hassan Zokaei Ashtiani
  • Mahdy Zolghadr
The finals will be held tomorrow, Wednesday, at 3PM. Please be there about half an hour sooner.

Saturday, August 19, 2006

The CCC3 On-site Rounds Program

اين هم ليست همه اتفاقات مرتبط با شرکت کنندگان CCC3 که از دوشنبه تا پنج شنبه در دانشگاه آزاد مشهد برگزار مي شود.

( اول آدرس ها:
* دانشگاه آزاد اسلامي مشهد، دانشکده مهندسي : قاسم آباد - بلوار اماميه - خيابان استاد يوسفي (از درب خيابان استاد يوسفي استفاده کنيد.)
* ساختمان دانشکده مهندسي : اگر از درب گفته شده داخل شويد، اولين ساختمان محوطه، دانشکده مهندسي است.
* دبيرخانه مسابقات : ساختمان دانشکده مهندسي، طبقه اول (1+)، اتاق 288. اگر خواستيد از کسي بپرسيد، بايد در مورد راهروي اساتيد کامپيوتر سؤال کنيد. آخرين اتاق اين راهرو دبيرخانه CCC3 است.
* غذا خوري (سلف) دانشگاه : اگر از درب گفته شده داخل شويد، دورترين ساختمان محوطه، واقع در گوشه دور و سمت چپ آن.
* متل توريست توس : جاده قوچان، بلافاصله بعد از پل قائم به سمت پليس راه.
)

- دوشنبه 8:00 تا 16:00 : شرکت کنندگان براي دريافت کارت، ژتون غذا، اطلاعات کلي و ... به دبيرخانه مسابقات مراجعه مي کنند. شرکت کنندگان بايد کارت شناسايي و فيش بانکي واريز هزينه ثبت نام (و هتل) را به همراه داشته باشند.
- دوشنبه 12:00 تا 14:00 : ناهار (نهار؟) در سلف دانشگاه. ولي اول بايد ژتون بگيريد.
- دوشنبه 12:00 تا 20:00 : کساني که هتل رزرو کرده اند، مي توانند check in کنند (البته اول بايد به دبيرخانه مراجعه کنيد تا هماهنگي هاي لازم انجام شود.)
- دوشنبه 16:00 تا 18:00 : مراسم افتتاحيه، قرعه کشي مرحله نيمه نهايي و توضيح در مورد نحوه برگزاري مسابقه. جداً پيشنهاد مي کنيم همه شرکت کنندکان در اين مراسم حضور داشته باشند.
- سه شنبه 8:00 تا 12:30 : مسابقه اول نيمه نهايي. شرکت کنندگان بايد 1 ساعت قبل از شروع مسابقه (که ساعت 9 است و سه ساعت طول مي کشد) در دانشکده حضور داشته باشند که هم جايشان مشخص شود و با محيط مسابقه آشنا شوند، و هم ما بتوانيم مسابقه را سر وقت آغاز کنيم.
* نکته : کساني که در مسابقه اي شرکت ندارند، مي توانند scoreboard را به طور همزمان در آمفي تئاتر دنبال کنند.
- سه شنبه 14:00 تا 18:30 : مسابقه دوم نيمه نهايي. شرکت کنندگان بايد 1 ساعت قبل از شروع مسابقه (که ساعت 15:00 است و سه ساعت طول مي کشد) در دانشکده حضور داشته باشند.
- چهارشنبه 11:00 تا 12:00 : کارگاه آموزشي و اعلام شرکت کنندگان فينال.
- چهارشنبه 12:00 تا 14:00 : نهار.
- چهارشنبه 14:00 تا 19:00 : مسابقه نهايي. شرکت کنندگان بايد 1 ساعت قبل از شروع مسابقه (که ساعت 15:00 است و چهار ساعت طول مي کشد) در دانشکده حضور داشته باشند.
- پنج شنبه 11:00 تا 13:00 : اختتاميه
- پنج شنبه 13:00 تا 1400 : نهار خداحافظي


Monday, August 14, 2006

وضعيت اقامت براي شرکت کنندگان

با هماهنگي هاي صورت گرفته، "هتل توريست توس" در مشهد پذيراي شرکت کنندگان در دوره نيمه نهايي و فينال خواهد بود که اين طور که به نظر مي رسد، هتل خوب و مرتبي است.
آدرس: مشهد، جاده قوچان، بعد از پل قائم - تلفن: 91-6659690 (0511) (مکان اين هتل تقريباً خيلي به دانشگاه نزديکه!)
هزينه اتاقهاي اين هتل (به اضافه صبحانه) به اين شرح است:
- دو نفره، هر شب 29000 تومان.
- چهار نفره، هر شب 45000 تومان.
- شش نفره، هر شب 58000 تومان.

اگر شما فقط براي مسابقات مشهد تشريف مياوريد، بايد براي 3 شب اتاقها را رزرو کنيد (دوشنبه ظهر تا پنج شنبه ظهر.) اگر مي خواهيد ما براي شما جا رزرو کنيم (براي جلوگيري از پيچيدگي و مشکلات اين شيوه را توصيه مي کنيم!) لطفاً تا قبل از پايان وقت اداري روز چهارشنبه 25 امرداد، مبلغ 35000 (سي و پنج هزار) تومان به حساب سيبا شماره 0101622865004 نزد بانک ملی ايران به نام مرتضي طلوع واريز کنيد. اين مبلغ به صورت علي الحساب و براي سه شب اقامت در اتاق چهار نفره مي باشد. در صورت بروز هر مشکلي (مثلاً اگر بليط گير نياورديد و ...) تا قبل از روز دوشنبه 30 امرداد اين مبلغ قابل استرداد است.
بعد از واريز پول، لطفاً شماره پيگيري را براي ما به آدرس contest.cssc@gmail.com ايميل کنيد. اگر مي خواهيد با دوستانتان يک اتاق بگيريد، لطفاً اين موضوع را هم در ايميل قيد کنيد، ما تلاش خود را خواهيم کرد.
کلاً ما خوشحال مي شويم که از وضعيت شما اطلاع داشته باشيم. مثلاً اگر قصد نداريد شرکت کنيد، يا هنوز بليط تهيه نکرده ايد، يا پياده تا مشهد مياييد، يا قطعاً به هتل احتياج داريد ولي هنوز هزينه آن را واريز نکرده ايد، اگر ما را هم در جريان بگذاريد خوشحال مي شويم.
يک موضوع ديگر. چهار (يا به روايتي پنج) نفر از شرکت کنندگان غير مشهديِ مرحله دوم خانم هستند. فکر مي کنم تا اين لحظه يک نفر از ايشان ثبت نام قطعي انجام داده اند. خوشحال خواهيم شد اگر بقيه هم وضعيت خود را مشخص کنند.

باز هم يادآوري مي کنم که مسابقات دوشنبه ظهر (در واقع بعدازظهر) با افتتاحيه و قرعه کشي شروع و پنج شنبه ظهر با اختتاميه به پايان مي رسد. مسابقه هاي نيمه نهايي روز سه شنبه صبح و عصر، و فينال چهارشنبه بعدازظهر خواهد بود.
باز هم خواهش مي کنم اگر سؤالي داشتيد يا موضوعي را مي خواستيد با ما در ميان بگذاريد، بدون درنگ به ما email بزنيد. اميدوارم همه شما را در مشهد ببينم.

داشت يادم مي رفت. دست کم جايزه دو سه نفر اول به هزينه هتل و غيره مي ارزه! مطمئن باشيد که ما به تيم اول يک دونه توپ فوتبال جايزه نمي ديم که سه نفره باهاش بازي کنند! ;-)

Tuesday, August 08, 2006

The State of CCC3 Round One

For those of you who did not take part in today's CCC contest (IAUM-CCC 3 - Round One), let me say that we encountered some problems. This is a semi-official statement, about what happened and why.
Let me tell you what happened first. Around 13:40 (Iran time) this afternoon, we were in the computer room in our university, judging the submissions, answering clars, sending people their KOPCS passwords (!) and generally the contest was going on quite well. The response time of the judging system (JFKOPCS, machines, us, etc.) was good, and the contestants were actually solving all the problems. We had some laughs, and generally we were having fun. And then, the disaster struck (how melodramatic!)
Suddenly the Internet connectivity of the whole building (we were the only ones in it!) was lost. Due to the special nature of our judgment system, lost Internet access means no judgement at all, because unlike most other online programming contest systems, our judgement is not done on the server. Anyway, we knew that there were going to be tons of submissions and clars piling up, and the contestants had no idea what was happening.
From users' point of view, at around 215-220 minutes into the contest, the judges just vanished! They could have died in a meteor crash!
Let me stress this again. There was nothing wrong about KOPCS, judgment programs or judges. You might say that we should have had some other place to do the judgement from. But you see, our judges were our university instructors, and they had to be there to make the contest official, if for nothing else, which was not the case. They did all the judgement up until the catastrophic disconnection. I guess right now is a good time to thank Mr. Abrishami, Ms. Amintoosi and Mr. Niazi for their time.
Anyway, we lost the connection, so after a few minutes of trying to get the connection back to no avail, we headed home, extended the time, and started judging again.
This was the major problem from most contestants' point of view. But there was another problem. The input for problem E (the File Sharing problem) had a line deleted from it! As a result, people's codes were having runtime errors, or were giving wrong answers. There is no one to blame in this fiasco but me. Because it was me (Yaser Zhian Tabasy) who prepared the problem statement (the typo in the sample was also my handiwork!) wrote the solution code, generated the input and the output, and then uploaded the problem files to KOPCS. Now you can hate me for this, on top of every bug and nuisance you see in KOPCS!
Anyway, when the connection went off, I ran my own code again for the input data that was in KOPCS, and we were using to test people's code. It gave a runtime error! As I said, a line from the first test case was missing, it was wreaking havoc upon solutions!
Anyway, we had found the problem, but there was no way we could fix it! As I said, we headed home, and we started judging the 100+ submissions that had been accumulated. And I went to upload the correct input file. Anyway, we rejudged all the E submissions, and only a single person, Albus, had submitted the correct solution to E before the disaster, and he became the first anyway (but I'm sure he had a lot of grief over it, and I'm also half-sure that his rather late solution of problem G was because he had to resubmit E a few times while he had already solved it!)

Now, I know what a problematic programming contest feels like. I was there 4 years ago when the ICPC regional went downhill (does anyone else remember that?) But also remember this. We are here for fun, and for making friends (or in my case, enemies!) and a chance to measure ourselves against others, and learn something new.
We are not perfect. We had some runtime errors. We apologize.

Saturday, August 05, 2006

11 Things You Should Know About Submitting Problems

  1. You should submit the source code for your programs, and your source code must be in a single file. You should not use any non-standard libraries or header files, and your programs must not interact with the user in any way.
  2. The problem name is given at the top of the problem statement, below the title, in the parentheses. The problem name is an (at most) 8-letter word, with all small English letters.
  3. The problem statements will be in Farsi.
  4. Your programs must read their input from a file with the name like this: "problemname.in", for example if the name of a problem is "foobar", the name of the input file will be "foobar.in", without the quotation marks, and with that exact casing.
  5. Your program must write its output to the standard output, that means "printf" or "cout" in C++, "Write" in Pascal, "System.out.println" in Java, for example. Opening a file other than input file is illegal. Everything written to stderr will be ignored (if you don't know what that is, just ignore this last sentence.)
  6. For Java submissions: you must name the class containing the "main" function "curcode". Sorry about the lower case, but it has to be that.
  7. Our systems have at least 2GHz CPUs. Most probably, the judgment will be done on 3+GHz CPUs, but we will make sure that all the runs for a given problem is judged on similar computers.
  8. The end-of-line (EOL) character(s) that you use in your output does not matter. But everything else does. For example, if you have an extra space at the end of each line of your output, you will get a "Wrong Answer", or possibly an "Output Format Error".
  9. If you get an "Accepted" for any problem without solving the problem yourself, you will be disqualified, and removed from KOPCS.
  10. If any contestant uses other code than those written by him/herself during the contest in a solution, he/she will be disqualified and removed from KOPCS. Note that KOPCS is a single-person contest and not a team-based one.
  11. In any and all cases, the decision of KOPCS admins and contest judges is final. They can revise their decisions, but that's it.

Thursday, August 03, 2006

Internal Test Contest Finished

Well, the internal test contest is finished. The main purpose of this contest was to test our new judgment code (aptly named JFKOPCS, the Judge For KOPCS, pronounced as a single word, not spelled out!) and the server code in general.
For security concerns, we don't run user submissions on the webserver machine. The KOPCS server program has a web-based machine-understandable (plain text) interface that JFKOPCS uses. Because of this, the judges can be as many as needed and anywhere they want. Also because of this, if judges cannot connect to the KOPCS server, then there is no judgment!
Today, our ADSL internet connections were in a terrible state, to say the least. That's why the judgment was non-responsive at times. But when we had connectivity, the automatic JFKOPCS performed well enough for such a hack that it was.
There were two other non-technical problems with the user submissions.
  • A LOT of them read input from stdin, where they should have read it from the problem short name (given in parentheses below the problem title in the problem statement file,) plus a ".in" appended.
  • Some people (one in particular) had many spurious submissions because they refreshed their "Contest Page" right after they've submitted their code, in spite of the warning their browser issued. Generally in KOPCS, refreshing pages doesn't do any harm, except in two situations. One of them is in the Admin interface, and the other is this. So, don't refresh your browser windows right after you've submitted your solution. After 30 seconds or so, the page automatically refreshes and from then on, refreshing the page won't have any side effects. I also want to take a moment here to say that just clicking on the "OK" button is bad practice. We are programmers, for crying out loud. Pay attention to what your computer tells you!
Now, the thing that will help us and you most is feedback. Please feel free to leave us a comment here and let us know about suggestions, bug reports, feature requests, etc. that you might have.