Inspired by day8, thanks
day8 part1
drop table if exists ops
;
create table ops(line serial primary key, op varchar(3), ct integer)
;
\copy ops(op, ct) from './input' delimiter ' '
;
with recursive
jmp as (
select line, line+ct nxt from ops where op='jmp'
),
travel as (
select 1 as line
union
select coalesce(jmp.nxt, travel.line + 1)
from travel
left join jmp on jmp.line = travel.line
)
select sum(ops.ct)
from travel
join ops on ops.line = travel.line
where ops.op = 'acc'
;