Skip to content

Instantly share code, notes, and snippets.

View cky's full-sized avatar

C. K. Young cky

View GitHub Profile
@cky
cky / A.rkt
Created April 13, 2014 02:32
Google Code Jam 2014 Qualification
#lang racket
(define (get-candidates)
(define row (sub1 (read)))
(for/seteqv ((i (in-range 16))
(item (in-producer read))
#:when (= (quotient i 4) row))
item))
(define T (read))
(for ((c (in-range T)))
import java.util.Arrays;
/**
* Demonstration of bound method references.
*/
public class MethodReferenceExample1 {
public static void main(String[] args) {
Arrays.stream(args, 1, args.length).filter(args[0]::contains)
.forEach(System.out::println);
}
@cky
cky / JnaCallbackDemo.java
Last active August 29, 2015 14:03
How to use JNA callbacks
package nz.kiwi.chris.demo;
import java.util.Arrays;
import java.util.Comparator;
import com.sun.jna.Callback;
import com.sun.jna.Function;
import com.sun.jna.IntegerType;
import com.sun.jna.Library;
import com.sun.jna.Native;
@cky
cky / keybase.md
Created September 26, 2014 11:59

Keybase proof

I hereby claim:

  • I am cky on github.
  • I am cky (https://keybase.io/cky) on keybase.
  • I have a public key whose fingerprint is D452 5B49 1CE4 D047 1BFF 1090 8E54 9D02 234C C324

To claim this, I am signing this object:

@cky
cky / Solution.java
Last active August 29, 2015 14:11
My solution for Sorted Set (Quora Haqathon 2014)
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
@cky
cky / A.rkt
Last active August 29, 2015 14:19
Google Code Jam 2015 qualification round
#lang racket
(for ((c (in-range (read)))
(smax (in-port))
(line (in-port (compose string-trim read-line))))
(define-values (extras total)
(for/fold ((extras 0) (total 0))
((i (in-range (add1 smax)))
(j (in-string line)))
(define n (- (char->integer j) (char->integer #\0)))
(define cur-extras (max (- i total) 0))
@cky
cky / Rpn7.java
Created March 15, 2011 19:41
RPN calculators in various languages
import java.io.IOException;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.ArrayDeque;
import java.util.Collections;
import java.util.Deque;
import java.util.EmptyStackException;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class StudentId {
private static final Pattern REPR_PATTERN = Pattern.compile("S(\\d{1,4})");
private final int studentId;
public StudentId(String repr) {
Matcher m = REPR_PATTERN.matcher(repr);
if (!m.matches())
@cky
cky / comm.rkt
Created March 2, 2012 00:47
Scheme comm(1) implementation
(require srfi/1)
(define (comm list1 list2 (lt? <))
(define (reverse-values . lists)
(apply values (map reverse lists)))
(let loop ((list1 list1) ;; Assumed to be sorted
(list2 list2) ;; Assumed to be sorted
(only1 '())
(only2 '())
(both '()))
(cond ((null? list1)
@cky
cky / Evil.java
Created March 24, 2012 21:34
Test your JVM's string interning behaviour under string mutation!
import java.lang.reflect.Field;
public class Evil {
private static final Field valueField;
static {
try {
valueField = String.class.getDeclaredField("value");
valueField.setAccessible(true);
} catch (NoSuchFieldException exc) {