はまやんはまやんはまやん

hamayanhamayan's blog

2Dシューティングゲームの必殺ビーム [yukicoder No.678]

https://yukicoder.me/problems/no/678

解法

https://yukicoder.me/submissions/254274

ビームのx座標について全探索しよう。
各x座標について全ての敵で当たっているか判定する。
その中で一番早くに当たった敵について当たったとして判定する。

int N, xLB, xRB, XL[202], YU[202], XR[202], YD[202], ans[202];
//---------------------------------------------------------------------------------------------------
void _main() {
    cin >> N >> xLB >> xRB;
    rep(i, 0, N) cin >> XL[i] >> YU[i] >> XR[i] >> YD[i];

    rep(x, xLB, xRB + 1) {
        vector<pair<int, int>> v;
        rep(i, 0, N) if (XL[i] <= x and x <= XR[i]) v.push_back({ -YD[i], i });
        sort(all(v));

        if (0 < v.size()) ans[v[0].second] = 1;
    }

    rep(i, 0, N) printf("%d\n", ans[i]);
}