350 lines
8.8 KiB
Java
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);
|
|
}
|
|
}
|