WARush

SRMの結果とか、解けた問題のコードを書いていきます

Codeforces #187 Div2 A "Sereja and Bottles"

問題

http://codeforces.com/contest/315/problem/A

セレジャ(発音あってる?)は友達とピクニックに来ていた。彼らはn本のソーダ瓶を持ってきていた。セレジャは栓抜きを忘れてしまったので、ちょっと違う方法でフタを開ける事にした。

セレジャはi番目のソーダ瓶のメーカー(コカコーラとかね)はa_iである事の他、それをb_iのメーカーのソーダ瓶を開ける事に使えることを知っていた。1つの瓶を使って複数の瓶を開ける事が出来るし、開けるために使う瓶はフタが開いていても閉まっていてもよい。

これらの情報より、セレジャは絶対に開けられない瓶がいくつあるか知りたい。その本数を出力せよ。

制約

1 <= n <= 100
1 <= a_i, b_i <= 1000



考えた事

各iについて、a_i == b_j ( i != j )となるものがあるかどうか

事後

iはb_iで開けられるのか・・・
iはb_iを開けられるのか・・・
どっちなんーだいっ!



ソースコード

int main() {

    int n;
    int a[110] = {0}, b[110] = {0};
    cin >> n;
    for( int i = 0; i < n; i++ ){
        cin >> a[i] >> b[i];
    }

    int ans = 0;
    for( int i = 0; i < n; i++ ){
        int need = a[i];
        bool open = false;
        for( int j = 0; j < n; j++ ){
            if( i == j ) continue;
            int brand = b[j];
            if( need == brand ){
                open = true;
                break;
            }
        }
        if( !open ) ans++;
    }

    cout << ans << endl;
}