#!/usr/local/bin/perl # day 2022-10 use strict; use warnings; use v5.32; @ARGV = "input" unless @ARGV; chomp( my $input = do { local $/; <> } ); use List::Util qw( sum ); my @x; my $cycle = 0; $x[ $cycle ] = 1; foreach ( split /\n/, $input ) { my ( $instruction, $value ) = m/(noop|addx)\s?(-?\d+)?/; $cycle++; $x[ $cycle ] = $x[ $cycle - 1 ]; if ( $instruction eq 'addx' ) { $cycle++; $x[ $cycle ] = $x[ $cycle -1 ] + $value; } } my @cycles = (20,60,100,140,180,220); say "part 1: ", sum( map{ $_ * $x[ $_ - 1 ] } @cycles );