変数にファイルを出力して省メモリ
2018-04-15
きっかけ
Perlでこの問題は厳しいの?(特にメモリ超過)
— ルモーリン (@lemorin_jp) 2018年4月14日
Hamako Online Judge https://t.co/S0Wix8ugXl pic.twitter.com/wwuy0opzq3
こんな省メモリ策を考えてみた
一時ファイルへ書き出せば良いかと思ったがこの手の挑戦サイトでは恐らく認められない。 そこでファイルを作らずに変数に書き出そう。コード
my $map; open my $map_fh, "+>", \$map; # 書き込み my $data = 12345; put_array(123, $data); # 読み出し $data = get_array(123, $data); close $map_fh; exit; my $s; sub get_array { seek $map_fh, 4 * $_[0], 0; read $map_fh, $s, 4; return unpack "l", $s; } sub put_array { seek $map_fh, 4 * $_[0], 0; print $map_fh pack "l", $_[1]; }