Skip to content

Instantly share code, notes, and snippets.

module Main
qsort : Ord a => List a -> List a
qsort [] = []
qsort (x :: xs) = smaller ++ [x] ++ larger
where smaller = qsort [y | y <- xs, y <= x]
larger = qsort [y | y <- xs, y > x]
main : IO ()
main = printLn $ qsort [5, 1, 5, 89, 1, 8, 5, 78]
@KPCCoiL
KPCCoiL / pairing_heap.cpp
Last active August 29, 2015 14:19
Pairing heap in TMP
//Pairing heap implementation in TMP
#include <iostream>
#include <type_traits>
#include <tuple>
using std::tuple;
struct Empty;
sealed trait SegTree {
def size: Int
def v: Int
def query(a: Int, b: Int): Int
def update(a: Int, k: Int): SegTree
}
case class Leaf(v: Int) extends SegTree {
override val size = 1
override def query(a: Int, b: Int): Int = v
CXX = g++
CXXFLAGS = -std=c++11 -O2
SRC = $(wildcard *.cpp)
OBJ = $(subst .cpp,,$(SRC))
$(OBJ): $(SRC)
$(CXX) $(CXXFLAGS) $(SRC) -o $(OBJ)
run: $(OBJ)
./$(OBJ)
@KPCCoiL
KPCCoiL / minimal_vimrc.vim
Last active August 29, 2015 14:11
minimal .vimrc in JOI
set nocp
set number
syntax enable
colorscheme desert
nnoremap ; :
nnoremap : ;
vnoremap ; :
vnoremap : ;
nnoremap j gj
nnoremap k gk
#include <iostream>
#include <vector>
#include <algorithm>
#include <limits>
using namespace std;
class segtree {
vector<int> data;
int n = 1;
#!/bin/bash
#script for JOI qualifier
#usege : ./runner.sh exec_name problemnumber
BINNNAME=$1
PROBLEMID=$2
for i in `seq 1 5`; do
INPUTNAME="2015-yo-t$PROBLEMID-in$i.txt"
declare i32 @putchar(i32)
define i32 @add(i32 %a, i32 %b) {
%1 = add i32 %a, %b
ret i32 %1
}
define void @loop() {
%1 = call i32 @add(i32 0, i32 97)
call i32 @putchar(i32 %1)
#include <iostream>
#include <utility>
using namespace std;
template<class T, T M>
class mods {
T v;
public:
mods() {}
mods(T v) : v(v%M) {}
//Typical DP contest A
#include <iostream>
#include <vector>
using namespace std;
int main() {
int n;
cin>>n;
vector<int> p(n);
for (auto& i : p) cin>>i;