Skip to content

Instantly share code, notes, and snippets.

View evansb's full-sized avatar

Evan Sebastian evansb

  • Singapore
View GitHub Profile
@evansb
evansb / .vimrc
Last active December 22, 2015 08:49
My .vimrc
set nocompatible
filetype off
if has("gui_running")
set guifont=Source\ Code\ Pro\ for\ Powerline:h12
set linespace=3
endif
set rtp+=~/.vim/bundle/vundle
// Minesweeper.cc
// Evan Sebastian <[email protected]>
#include <cstdio>
#include <vector>
using namespace std;
int count9(vector<vector<char> >& mine, int i, int j) {
int c = 0;
int w = (int)mine[0].size();
// Crypt Kicker
// Evan Sebastian <[email protected]>
#include <cstdio>
#include <iostream>
#include <stack>
#include <string>
#include <sstream>
#include <set>
#include <vector>
@evansb
evansb / shunt.hs
Created June 6, 2014 14:22
Shunting Yard Algorithm in Haskell
module Main where
import Data.Char
import Data.Map
-- Shunting - Yard algorithm for Reverse Polish Notation
data Token = Number Int | ParenOpen | ParenClose
| AddOp | MulOp | DivOp | SubOp
deriving (Show, Eq)
@evansb
evansb / binarytree.hs
Created June 7, 2014 11:13
Balanced Binary Tree from List in Haskell.... Literally just copying the definition.
data Tree a = Leaf
| Node Integer (Tree a) a (Tree a)
deriving (Show, Eq)
foldTree :: [a] -> Tree a
foldTree [] = Leaf
foldTree xs = Node height
(foldTree $ take half xs)
(xs !! half)
(foldTree $ drop (half + 1) xs)
@evansb
evansb / fold.hs
Created June 21, 2014 14:16
Some interesting fold example
-- Try to guess what divide does!
divide:: (Integral a) => [a] -> [[a]]
divide = f1 . f2 where
f1 = foldr f3 []
f2 = map (:[])
f3 x acc
| null acc = x : acc
| (head x * head (head acc)) > 0 = (x ++ head acc) : tail acc
| otherwise = x : acc
@evansb
evansb / Makefile
Created July 1, 2014 14:24
CP stuff
TARGET=TARGET_NAME
CC=clang++
CFLAG=-Wall -O3 -g -DNDEBUG
SRC=$(shell find . -name *.cpp)
OBJ=${SRC:.cpp=.o}
all: $(OBJ)
./$(TARGET) $(TARGET).input $(TARGET).output
diff $(TARGET).output $(TARGET).model
@evansb
evansb / erdos.py
Created July 4, 2014 16:21
Erdos Number (UVA 10044).
import sys
DEBUG = True
INFINITY = 99999
def debug(var):
if DEBUG:
sys.stderr.write(repr(var) + "\n")
def make_adjacent(graph, people, paper):
@evansb
evansb / dp.py
Created July 26, 2014 05:44
Some DP problems in Python
def ugly_pascal_triangle(level):
table = []
for row in range(level):
for col in range(level):
if row == 0:
table.append([])
if col == 0 or row == col:
table[row].append(1)
@evansb
evansb / Parser.hs
Created August 11, 2014 11:28
3 lines Parser in Haskell (Line 9,11,12)
import Control.Monad.State.Lazy
import Control.Monad.Error
import Control.Monad.Identity
import Control.Applicative
import Data.Char
-- Begin parser
type Parser a = StateT String (ErrorT String Identity) a