paizaオンラインハッカソン とやら
https://paiza.jp/poh/ec-campaign/
そこそこ良い方だったと思うので残しとく
読み込んでー
ソートしてー
要らんデータ消してー
最高額取ってー
最低額から足してってー
設定額に近づくまで続ける
以上
ケース1は0.07秒だったけどケース3で8.5秒とかなのでまだまだだなと思った。
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
my (@price,@day); | |
<STDIN> =~ /(\d+) (\d+)/; | |
$price[$_] = <STDIN> for (0..($1-1)); | |
$day[$_] = <STDIN> for (0..($2-1)); | |
@price = sort {$a <=> $b} @price; | |
for my $setprice (@day){ | |
my @tmp = grep { $_ <= $setprice - $price[0] } @price; | |
my $check = 0; | |
unless ($price[0] < $setprice / 2) { | |
print "0\n"; | |
next; | |
} | |
while (my $first = pop @tmp){ | |
for (@tmp) { | |
my $same = $first + $_; | |
last if $same > $setprice; | |
$check = $same if $check < $same; | |
} | |
last if $check == $setprice; | |
} | |
print $check . "\n"; | |
} |
結果↓
http://paiza.jp/poh/ec-campaign/result/a157a302b6a287f7c824c3ac1742bf41
0 件のコメント:
コメントを投稿