Files
2015-12-07 05:03:27 -05:00

350 lines
8.8 KiB
Java

// let the compiler do the work
// I generated the variables using:
// `cat input-7.1.txt | sed 's/\([^-]*\) \-> \([a-z]*\)/int \2 = \1\;/;s/NOT /~/;s/RSHIFT/>>/;s/LSHIFT/<</;s/AND/\&/;s/OR/|/' | sort -k2 | awk '{ line[length($2)][counter[length($2)]++] = $0 } END { for (i in line) for (j in line[i]) print line[i][j] }'
import java.util.Scanner;
public class Day7 {
public static void main(String[] args) {
int b = 44430; // 3176 for part 2
int c = 0;
int d = b >> 2;
int e = b >> 3;
int f = b >> 5;
int g = e | f;
int h = e & f;
int i = ~h;
int j = g & i;
int k = d | j;
int l = d & j;
int m = ~l;
int n = k & m;
int o = b | n;
int p = b & n;
int q = ~p;
int r = o & q;
int s = 1 & r;
int t = c << 1;
int u = t | s;
int v = b >> 1;
int w = s << 15;
int x = v | w;
int y = x >> 2;
int z = x >> 3;
int aa = x >> 5;
int ab = z | aa;
int ac = z & aa;
int ad = ~ac;
int ae = ab & ad;
int af = y | ae;
int ag = y & ae;
int ah = ~ag;
int ai = af & ah;
int aj = x | ai;
int ak = x & ai;
int al = ~ak;
int am = aj & al;
int an = 1 & am;
int ao = u << 1;
int ap = ao | an;
int aq = x >> 1;
int ar = an << 15;
int as = aq | ar;
int at = as >> 2;
int au = as >> 3;
int av = as >> 5;
int aw = au | av;
int ax = au & av;
int ay = ~ax;
int az = aw & ay;
int ba = at | az;
int bb = at & az;
int bc = ~bb;
int bd = ba & bc;
int be = as | bd;
int bf = as & bd;
int bg = ~bf;
int bh = be & bg;
int bi = 1 & bh;
int bj = ap << 1;
int bk = bj | bi;
int bl = as >> 1;
int bm = bi << 15;
int bn = bl | bm;
int bo = bn >> 2;
int bp = bn >> 3;
int bq = bn >> 5;
int br = bp | bq;
int bs = bp & bq;
int bt = ~bs;
int bu = br & bt;
int bv = bo | bu;
int bw = bo & bu;
int bx = ~bw;
int by = bv & bx;
int bz = bn | by;
int ca = bn & by;
int cb = ~ca;
int cc = bz & cb;
int cd = 1 & cc;
int ce = bk << 1;
int cf = ce | cd;
int cg = bn >> 1;
int ch = cd << 15;
int ci = cg | ch;
int cj = ci >> 2;
int ck = ci >> 3;
int cl = ci >> 5;
int cm = ck | cl;
int cn = ck & cl;
int co = ~cn;
int cp = cm & co;
int cq = cj | cp;
int cr = cj & cp;
int cs = ~cr;
int ct = cq & cs;
int cu = ci | ct;
int cv = ci & ct;
int cw = ~cv;
int cx = cu & cw;
int cy = 1 & cx;
int cz = cf << 1;
int da = cz | cy;
int db = ci >> 1;
int dc = cy << 15;
int dd = db | dc;
int de = dd >> 2;
int df = dd >> 3;
int dg = dd >> 5;
int dh = df | dg;
int di = df & dg;
int dj = ~di;
int dk = dh & dj;
int dl = de | dk;
int dm = de & dk;
int dn = ~dm;
int doo = dl & dn;
int dp = dd | doo;
int dq = dd & doo;
int dr = ~dq;
int ds = dp & dr;
int dt = 1 & ds;
int du = da << 1;
int dv = du | dt;
int dw = dd >> 1;
int dx = dt << 15;
int dy = dw | dx;
int dz = dy >> 2;
int ea = dy >> 3;
int eb = dy >> 5;
int ec = ea | eb;
int ed = ea & eb;
int ee = ~ed;
int ef = ec & ee;
int eg = dz | ef;
int eh = dz & ef;
int ei = ~eh;
int ej = eg & ei;
int ek = dy | ej;
int el = dy & ej;
int em = ~el;
int en = ek & em;
int eo = 1 & en;
int ep = dv << 1;
int eq = ep | eo;
int er = dy >> 1;
int es = eo << 15;
int et = er | es;
int eu = et >> 2;
int ev = et >> 3;
int ew = et >> 5;
int ex = ev | ew;
int ey = ev & ew;
int ez = ~ey;
int fa = ex & ez;
int fb = eu | fa;
int fc = eu & fa;
int fd = ~fc;
int fe = fb & fd;
int ff = et | fe;
int fg = et & fe;
int fh = ~fg;
int fi = ff & fh;
int fj = 1 & fi;
int fk = eq << 1;
int fl = fk | fj;
int fm = et >> 1;
int fn = fj << 15;
int fo = fm | fn;
int fp = fo >> 2;
int fq = fo >> 3;
int fr = fo >> 5;
int fs = fq | fr;
int ft = fq & fr;
int fu = ~ft;
int fv = fs & fu;
int fw = fp | fv;
int fx = fp & fv;
int fy = ~fx;
int fz = fw & fy;
int ga = fo | fz;
int gb = fo & fz;
int gc = ~gb;
int gd = ga & gc;
int ge = 1 & gd;
int gf = fl << 1;
int gg = gf | ge;
int gh = fo >> 1;
int gi = ge << 15;
int gj = gh | gi;
int gk = gj >> 2;
int gl = gj >> 3;
int gm = gj >> 5;
int gn = gl | gm;
int go = gl & gm;
int gp = ~go;
int gq = gn & gp;
int gr = gk | gq;
int gs = gk & gq;
int gt = ~gs;
int gu = gr & gt;
int gv = gj | gu;
int gw = gj & gu;
int gx = ~gw;
int gy = gv & gx;
int gz = 1 & gy;
int ha = gg << 1;
int hb = ha | gz;
int hc = gj >> 1;
int hd = gz << 15;
int he = hc | hd;
int hf = he >> 2;
int hg = he >> 3;
int hh = he >> 5;
int hi = hg | hh;
int hj = hg & hh;
int hk = ~hj;
int hl = hi & hk;
int hm = hf | hl;
int hn = hf & hl;
int ho = ~hn;
int hp = hm & ho;
int hq = he | hp;
int hr = he & hp;
int hs = ~hr;
int ht = hq & hs;
int hu = 1 & ht;
int hv = hb << 1;
int hw = hv | hu;
int hx = he >> 1;
int hy = hu << 15;
int hz = hx | hy;
int ia = hz >> 2;
int ib = hz >> 3;
int ic = hz >> 5;
int id = ib | ic;
int ie = ib & ic;
int iff = ~ie;
int ig = id & iff;
int ih = ia | ig;
int ii = ia & ig;
int ij = ~ii;
int ik = ih & ij;
int il = hz | ik;
int im = hz & ik;
int in = ~im;
int io = il & in;
int ip = 1 & io;
int iq = hw << 1;
int ir = iq | ip;
int is = hz >> 1;
int it = ip << 15;
int iu = is | it;
int iv = iu >> 2;
int iw = iu >> 3;
int ix = iu >> 5;
int iy = iw | ix;
int iz = iw & ix;
int ja = ~iz;
int jb = iy & ja;
int jc = iv | jb;
int jd = iv & jb;
int je = ~jd;
int jf = jc & je;
int jg = iu | jf;
int jh = iu & jf;
int ji = ~jh;
int jj = jg & ji;
int jk = 1 & jj;
int jl = ir << 1;
int jm = jl | jk;
int jn = iu >> 1;
int jo = jk << 15;
int jp = jn | jo;
int jq = jp >> 2;
int jr = jp >> 3;
int js = jp >> 5;
int jt = jr | js;
int ju = jr & js;
int jv = ~ju;
int jw = jt & jv;
int jx = jq | jw;
int jy = jq & jw;
int jz = ~jy;
int ka = jx & jz;
int kb = jp | ka;
int kc = jp & ka;
int kd = ~kc;
int ke = kb & kd;
int kf = 1 & ke;
int kg = jm << 1;
int kh = kg | kf;
int ki = jp >> 1;
int kj = kf << 15;
int kk = ki | kj;
int kl = kk >> 2;
int km = kk >> 3;
int kn = kk >> 5;
int ko = km | kn;
int kp = km & kn;
int kq = ~kp;
int kr = ko & kq;
int ks = kl | kr;
int kt = kl & kr;
int ku = ~kt;
int kv = ks & ku;
int kw = kk | kv;
int kx = kk & kv;
int ky = ~kx;
int kz = kw & ky;
int la = 1 & kz;
int lb = kh << 1;
int lc = lb | la;
int ld = kk >> 1;
int le = la << 15;
int lf = ld | le;
int lg = lf >> 2;
int lh = lf >> 3;
int li = lf >> 5;
int lj = lh | li;
int lk = lh & li;
int ll = ~lk;
int lm = lj & ll;
int ln = lg | lm;
int lo = lg & lm;
int lp = ~lo;
int lq = ln & lp;
int lr = lf | lq;
int ls = lf & lq;
int lt = ~ls;
int lu = lr & lt;
int lv = 1 & lu;
int lw = lc << 1;
int lx = lw | lv;
int ly = lf >> 1;
int lz = lv << 15;
int ma = ly | lz;
int a = lx;
System.out.println(a);
}
}