November 2009 - Posts
After UM team won 2nd place in the regional contest, it meant that they were going to Harbin, China, to participate in the World Programming Contest Finals.
I wanted to go too, but my going depended on the University getting the funding for me, so I wasn't sure if I will be going along with the team and their main coach.
But that was not all that was to come yet.
A few days after the regional contest, it turned out that there was a problem with the judging during the contest. After fixing the problem and rejudging contestants' submissions, it was determined that Ann Arbor's team actually came in 4th, and thus was not eligible to go to the World Finals...
I didn't know what to feel or what to expect. The team's coach was hopeful. Since we won 2nd place, and everybody was judged equally during the contest, there was still a good case for our team going. I was hopeful too.
And today I got the email saying that WE ARE GOING!
WE ARE GOING TO CHINA !! WOO HOO ! WOO HOO HOO !!
Link to UM Article
Link to World Finals Official Site
I've participated in an online TopCoder Contest this Tuesday, November 17th.
Unfortunately, as it turned out that TopCoder has had some problems with their networking equipment and about 10 minutes into the contest, I found that I was not able to submit my code. Neither could the rest of the 950 contestants.
Due to the problems with the contest, TopCoder decided to make this round unrated, which means you could still solve the problems, but your score will not go on your record.
Aside from these difficulties, I still had fun solving the 250 point problem, which is also known as an Easy problem. Before TopCoder's server went down, some people have solved it in under 5 minutes or less(!!) Here's the problem statement:
Problem Statement
A bunch of teams have had a tournament of some kind. Some of the teams won, some lost, and some had a draw. Some of teams did not participate in the tournament.
You are given a list of points that each team had accumulated after the tournament.
When a team wins, they get 2 points. If they lose, they get 0 points. If there is a draw, each team gets 1 point each.
You are given an array of points, where the i-th element is the score of the i-th team.
Your task is to figure out the minimum number of games that could have been played to achieve those standings. If the points array has an invalid state, return -1.
Examples:
points: {10, 1, 1} returns: 6
Here the first team has five wins or four wins and two draws. The second and the third team each has one draw.
points: {1, 1, 1} returns: -1
These standings are impossible. There is no way for each team to have a draw in this case.
points: {0, 0, 0, 0, 0, 0, 0} returns: 0
There are no points, which means no games have been played yet.
points: {13, 8, 7} returns: 14
On October 31st, University of Michigan Ann Arbor hosted their 3rd ACM ICPC Regional Programming Contest.
ACM ICPC is a distributed online event sponsored by IBM. This time we have had four distributed contest sites: Cincinnati Ohio, McMaster Site Ontario, Youngstown Ohio, and UM Ann Arbor. There was a total of 123 teams drawn from 65 colleges and universities.
I was at the UM site serving as an assistant site director, assistant system administrator and assistant coach for Ann Arbor teams. I have also served as an official/unofficial photographer. It was a great time!
My own alma mater UM-Dearborn campus had two teams represented, where each team had solved 2 of the problems, which is quite a feat! Only 29 out of 123 teams have solved 3 or more problems.
You may view the Problem Set.
After 5 grueling hours, Ann Arbor top team "Victors" have solved all 8 problems with time to spare! They came in 2nd in the region. This meant that they are going to Harbin, China! To participate in the World Finals!
But was I going ? This question remained open. My status of going as an assistant coach was unclear.
On October 23, I've put on my first distributed online programming contest as a preparation run for the ICPC Regionals. This event was a practice contest for UM Ann Arbor teams. To give them a challenge and to make things more interesting, I've invited a few contest enthusiasts from TopCoder to participate.
I've used a similar problem set as I've used for the Dearborn contest, with one important change -- The Problems Were Harder.
It was incredibly fun and just incredible to judge this contest! After spending so much time toiling over the problems and making them harder, it was a real shock to see the contestants solving them in 4 to 8 minutes.
You may view the Problem Set.
On September 25 I've put on University of Michigan-Dearborn's 3rd semestrial Programming Contest. It was loads of fun!
I came up with most of the problem ideas and the write-ups for the contest. Scott Hoffman, a 3-time contest judge and a student of UM-D was helping me with judging the contest.
You can check out the problem set here.
Michigan Journal Wrote an article about the event here.
September 22 - Flex Jam with James Ward at SRT Solutions.
Result: My Flex Application.
It raises number 2 to any reasonable power that you provide.
The application uses Flex ActionScript and MXML. Inside it uses ArrayCollection to store the number resulting from raising 2 to any power. It also uses easeBounce effect to display the number.
Zoom effects are courtesy of James Ward and ArrayCollection programming is by Dennis Matveyev.
My reflections on Flex: it's a nice neat language. You can do a lot of good with it if you know what you are doing and a lot of bad if you don't.
To program effectively, I would need to spend a lot more than one day on learning the language. This Jam however has been a nice introduction to the language itself and its power.