#!/usr/bin/perl -w use v5.14; no if $] > 5.017011, warnings => 'experimental::smartmatch'; use File::Copy qw/copy/; my ($format, $basename, $name) = @ARGV; my $ret = fork // die $!; if ($ret) { $SIG{ALRM} = sub {kill KILL => $ret}; alarm 5; wait; exit $? >> 8 } else { given ($format){ exec 'gcc', qw/-DONLINE_JUDGE -std=gnu11 -Wextra -O2 -o/, $basename, $name when 'C'; exec 'g++', qw/-DONLINE_JUDGE -std=gnu++11 -fabi-version=6 -Wextra -O2 -o/, $basename, $name when 'CPP'; exec 'gmcs', '-d:ONLINE_JUDGE', $name when 'MONO'; exec 'javac', $name when 'JAVA'; exec 'fpc', qw/-dONLINE_JUDGE -O2 -n/, $name when 'PASCAL'; copy $name, $basename when ['PERL', 'PYTHON'] } }