Skip to content

Instantly share code, notes, and snippets.

View coyotebush's full-sized avatar

Corey Ford coyotebush

View GitHub Profile
#!/usr/bin/runhaskell
import Control.Applicative
import Data.List
import Data.Maybe
import qualified Data.Set as S
type Board = [[Char]]
type Point = (Int, Int)
data Direction = N | S | E | W deriving (Eq, Ord)
host unix?
hostname %h.csc.calpoly.edu
user cjford
@coyotebush
coyotebush / BalancedSmileys.hs
Last active December 11, 2015 22:29
My solutions to the 2013 Facebook Hacker Cup qualification round.
balanced :: Int -> Int -> String -> Bool
balanced hi _ _ | hi < 0 = False
balanced hi lo xs | lo < 0 = balanced hi 0 xs
balanced _ lo "" = lo == 0
balanced hi lo ('(':xs) = balanced (hi + 1) (lo + 1) xs
balanced hi lo (')':xs) = balanced (hi - 1) (lo - 1) xs
balanced hi lo (':':'(':xs) = balanced (hi + 1) lo xs
balanced hi lo (':':')':xs) = balanced hi (lo - 1) xs
balanced hi lo (_:xs) = balanced hi lo xs
doCase n = do
s <- getLine
putStrLn $ "Case #" ++ show n ++ ": "
main = do
n <- getLine
mapM_ doCase [1..read n]
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
int main () {
printf("1: %s\n", getenv("PWD"));
setenv("PWD", "/etc", 1);
printf("2: %s\n", getenv("PWD"));
execl("/usr/bin/printenv", "/usr/bin/printenv", "PWD", NULL);
}
import Data.List
import qualified Data.Map as Map
type WordMap = Map.Map String [Int]
wordsByLine _ [] = Map.empty
wordsByLine n (s:ss) = Map.unionWith (++) (Map.fromList [(w, [n]) | w <- nub $ words s])
(wordsByLine (n + 1) ss)
printWords = mapM_ (putStrLn . formatWord) . Map.toList