LoginSignup
0
0

【いもす法の練習問題】練習問題 その 2 (paizaランク B 相当)

Posted at

問題

解答

入場者を計算する方法で悩みました。
しかし、今までの問題でしていた出入り口に置いていた数字の1-1を入場者数に変えるだけでした。はあ、すっきり!!:punch::v_tone2::cow:

<?php
    list($q, $m) = explode(" ", trim(fgets(STDIN)));

    // 配列の範囲が与えられなかったので、取りうる可能性がある値の範囲分初期化
    $a = array_fill(0, 2001, 0);
    
    for($i = 0; $i < $q; $i++) {
        list($left, $right, $p) = explode(" ", trim(fgets(STDIN)));
        
        // 入場者数を更新
        $a[$left] += $p;
        
        // 退場者数を更新(退場自国の次の時間から人数が減る) 
        if($right + 1 <= 2000) {
            $a[$right+1] -= $p;
        }
    }

    // indexが0の時を無視する
    // 0の時には前の要素が存在しないから
    for($i = 1; $i <= 2000; $i++) {
        $a[$i] += $a[$i - 1];
    }
    
    if($m > max($a)) {
        echo "Yes";
    } else {
        echo "No";
    }
    
?>
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0