# october-2013

A+ Computer Science October 2013

Computer Science Competition Hands-On Programming Set

## Problem 1 - Mean

Super easy. I had problems with this only because I hadn't touched Java in a while and had to relearn better ways of inputting data from a file. I still want to implement a system which allows better files, but that requires a lot more effort from me.

I also had to re-figure-out how to do floating point rounding without a function which was effectively `round(double value, int places=0)`. Thanks Stack Overflow, again.

## Problem 2 - Twitter

Unexpectedly easy. Needs no mention.

## Problem 3 - Snake

This is the second hardest one in the packet, but it really doesn't have much to it. I had to use classes and figure all that out, but it was a decent exercise overall.
I made a input generator for this in Python for shits n' giggles, but it didn't work too well in the end, I believe.

## Problem 4 - Similar

Extremely easy, but I wish we had a larger input set so I could make sure it actually works properly. My solution could probably break if a input did not match my expectations.

## Problem 5 - Refraction

Super easy, just had to write down equations on paper and remember that it's `asin` not `sin-1` like on the calculator. Interesting, but not worth mentioning.

## Problem 6 - DoubleT

Wow. I spent more time on this, minutes, more than I ever should have. Hooray.

## Problem 7 - CSMEals

Interesting problem, but like Problem 3, has very little to it that I can specify. Encountered weird problems while optimizing that made debugging a pain.

## Problem 8 - Climb

Again, super easy.

## Problem 9 - Sexy

I've never seen the word "Sexy" in a school enviroment/paper before. Geegee.

## Problem 10 - Synonyms

I really liked this problem. Probably the third hardest in the packet for me.

## Problem 11 - Triple

Extraordinarily hard, dear god, I hope no one else had the chance of being forced to solve this problem. Multiplying by 3, oh dear god!..

## Problem 12 - Checkers

The hardest problem in the packet. I spent a lot of time debugging how to do this problem and deciding how to do it. I probably spent an hour or so total just looking at a profiler and seeing how the values changed.

The only things I could mention about this problem is that, I forgot that you can only move forward/backward depending on which side you start on.

My solution allows you to switch to Red or Black checkers (though the code needs to be adjusted slightly).