import java.util.Collections.* fun min (x: Int, y: Int): Int { if (x < y) { return x; } else { return y; } } fun main(args : Array<String>) { var ans: Int = 0; var B: Int = 50 + 1; for (P1 in 1..((B*B) - 1)) { for (P2: Int in (P1+1)..((B*B - 1))) { var x1: Int = P1 / B; var y1: Int = P1 % B; var x2: Int = P2 / B; var y2: Int = P2 % B; var oldans = ans; if (min(x1, x2) == 0 && min(y1, y2) == 0) { //Right Angle at origin ++ans; } else if ((y1 == y2) && (x1 == 0 || x2 == 0)) { //undef slope, check explicitly ++ans; } else if ((x1 == x2) && (y1 == 0 || y2 == 0)) { //same ++ans; } else { //Negative reciprocals => right angle var num: Int = y1 * (y1 - y2); var denom: Int = x1 * (x1 - x2); if (denom != 0) { var ratio: Int = num / denom; var rem: Int = num % denom; if ((ratio == -1) && (rem == 0)) { ++ans; } } num = y2 * (y2 - y1); denom = x2 * (x2 - x1); if ((ans == oldans) && denom != 0) { var ratio: Int = num / denom; var rem: Int = num % denom; if ((ratio == -1) && (rem == 0)) { ++ans; } } } } } System.out.println(ans); }
Wednesday, August 6, 2014
Problem 91 - Kotlin
I haven't used Kotlin in a very long time...the last time I used it was for problem 26. However, as it is basically a "Java with syntactic sugar" language, it was not too hard to use (especially as I had been writing my solution to Java before freeing it up on this problem with Kotlin). Really the main annoyance with Kotlin is that I have never managed to actually install it on my computer, so I have to use their online demo, which really is not that huge of an annoyance at all. Code runs in some relatively short amount of time that I couldn't really time because, yeah, online demo:
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment