View NonTransitiveComparator
using System;
namespace SharpFoo
{
class Program
{
private Random rnd = new Random();
static void Main(string[] args)
{
View gist:b77c4fb3bfd412ba42fe
private Node Add(Node a, Node b)
{
Node c = null, answer = null;
int carry = 0;
while (a != null && b != null)
{
carry += a.digit + b.digit;
if (c == null)
answer = c = new Node(carry % 10, null);
else
View Naive Inversion Count
def inversionCount_1(A):
c = 0
for i in xrange(len(A)):
for j in xrange(i + 1,len(A)):
if A[i] > A[j]:
c += 1
return c
View Inversion Count - Merge Sort
def inversionCount_2(A):
def inversionCount_2(A,l,r):
if l >= r: return 0
m = (l + r) / 2
# recurse and store inversion counts for the halfs
invCount = inversionCount_2(A,l,m) + inversionCount_2(A,m + 1,r)
merged = []
i,j = l,m + 1
while i <= m and j <= r:
if A[i] < A[j]:
View Cooking-The-Book.md

#Cooking the Books

###15 points

Every business can make use of a good accountant and, if they're not big on following the law, sometimes a bad one. Bad accountants try to make more money for their employers by fudging numbers without getting caught.

Sometimes a bad accountant wants to make a number larger, and sometimes smaller. It is widely known that tax auditors will fail to notice two digits being swapped in any given number, but any discrepancy more egregious will certainly be caught. It's also painfully obvious when a number has fewer digits than it ought to, so a bad accountant will never swap the first digit of a number with a 0.

Given a number, how small or large can it be made without being found out?

View Cooking-The-Book-Solution.java
import java.io.File;
import java.io.PrintStream;
import java.util.Scanner;
public class Solution {
public static void main(String[] args) throws Exception {
new Solution().go();
}
View New-Year-Resolution.md

#New Year's Resolution

###30 points

Alex's New Year's resolution for 2015 is to eat healthier foods. He's done some research and has found out that calories come from three main sources, called macronutrients: protein, carbohydrates, and fat. Alex wants to get the right balance of protein, carbohydrates, and fat to have a balanced diet. For each available food, Alex can only choose to eat it or not eat it. He can't eat a certain food more than once, and he can't eat a fractional amount of a food.

###Input

Input begins with an integer T, the number of test cases. For each test case, the first line consists of three space-separated integers: GP, GC, and GF, which represent the amount of protein, carbohydrates, and fat that Alex wants to eat. The next line has the number of foods for that test case, an integer N. The next N lines each consist of three space-separated integers: P, C, and F, which represent the amount of protein, carbohydrates, and fat in that food, respectively.

View New-Year-Resolution-Solution.java
import java.io.File;
import java.io.PrintStream;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
View Laser-Maze-Solution.java
import java.io.File;
import java.io.PrintStream;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;
import java.util.Set;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutorService;