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

hamayanhamayan's blog

Job Assignment [AtCoder Beginner Contest 194 B]

https://atcoder.jp/contests/abc194/tasks/abc194_b

解説

https://atcoder.jp/contests/abc194/submissions/20734525

競技プログラミングの基本である、考えうる組合せの全探索を行おう。
今回は、仕事Aと仕事Bをどの従業員に割り当てるかという部分を全探索する。
仕事Aにaさん、仕事Bにbさんを割り当てるようにしたのが、下記の実装である。
こうすると、組合せは103×103=106通りなので問題ない。
全通りの時は、場合によりけりだが、107通りくらいが限界だと思うといい。

仕事を割り当てたときにかかる時間はa=bかどうかによって異なるので注意。
chminの定義については、自分の提出を見てほしい。

int N, A[1010], B[1010];
//---------------------------------------------------------------------------------------------------
void _main() {
    cin >> N;
    rep(i, 0, N) cin >> A[i] >> B[i];

    int ans = inf;
    rep(a, 0, N) rep(b, 0, N) {
        int cost;
        if (a == b) cost = A[a] + B[b];
        else cost = max(A[a], B[b]);
        chmin(ans, cost);
    }
    cout << ans << endl;
}