Skip to content

Instantly share code, notes, and snippets.

View rafalio's full-sized avatar

Rafal Szymanski rafalio

View GitHub Profile
module Main where
import Data.Either
import Text.Parsec
import Text.Parsec.String
import Control.Applicative hiding (many)
data Node = Node {
nCoords :: (Int, Int),
nSize :: Int,
module Main where
import Data.Either
import Text.Parsec
import Text.Parsec.String
import Control.Applicative hiding (many)
data Node = Node {
nCoords :: (Int, Int),
nSize :: Int,
<?xml version="1.0"?>
<root>
<item>
<name>Disable left shift for backtick, 1,2,3</name>
<identifier>private.disable_left_shift_for_left_side</identifier>
<autogen>__KeyOverlaidModifier__ KeyCode::BACKQUOTE, ModifierFlag::SHIFT_L, KeyCode::VK_NONE</autogen>
<autogen>__KeyOverlaidModifier__ KeyCode::1, ModifierFlag::SHIFT_L, KeyCode::VK_NONE</autogen>
<autogen>__KeyOverlaidModifier__ KeyCode::2, ModifierFlag::SHIFT_L, KeyCode::VK_NONE</autogen>
<autogen>__KeyOverlaidModifier__ KeyCode::3, ModifierFlag::SHIFT_L, KeyCode::VK_NONE</autogen>
</item>
@rafalio
rafalio / gist:5067983
Created March 1, 2013 21:34
Coin Counting / Integer Partition
memo = dict()
# Returns a list of lists of all possibilities
def coin_count(amount,poss,curpos):
if amount == 0:
return [[]]
elif amount < 0 or curpos >= len(poss):
return []
elif (amount,curpos) in memo: # memoized
return memo[(amount,curpos)]
@rafalio
rafalio / gist:5049870
Created February 27, 2013 17:40
Contiguous subsequence sum
# 'A' is an unsorted array of integers
# Find any contigous subsequence of A that sums to C.
def cont_subsequence_sum(A, C):
m = dict() # Maps number to index
curSum = 0
m[0] = -1
for i in range(len(A)):
curSum += A[i]
if( (curSum - C) in m ):
answer = [A[j] for j in range(m[curSum-C]+1,i+1)]
@rafalio
rafalio / gist:5043438
Created February 26, 2013 23:41
Random number proportional to its value.
def prop_random(r):
S = sum(r)
i = -1
rand = random.randint(1,S)
while(rand > 0):
i = i + 1
rand = rand - r[i]
return r[i]
@rafalio
rafalio / gist:5042951
Created February 26, 2013 22:32
MinMax 3n/2
def getMinMax(r):
mini = r[0]
maxi = r[0]
start = 0
if len(r) % 2 != 0:
start = 1
for i in range(start,len(r)-1,2):
n1 = r[i]