codeforces #406 B. Not Afraid

方針

各グループについて、絶対値が等しい正負の値のペアが存在するか探索。 ペアが存在するグループは少なくとも全員がtraitorというわけではない。 ペアが存在しない場合は、グループ全員がtraitorの可能性がある。 一つのグループでも、グループ全員がtraitorの可能性がアレば"YES",そうでなければ"NO"と出力する。

#include <iostream>
#include <vector>
#include <algorithm>
#include <set>
using namespace std;

typedef long long ll;

int main() {
    int n, m;
    cin >> n >> m;
    string ans = "NO";
    for(int i=0;i<m;i++) {
        int k;
        cin >> k;
        set<int> st;
        for(int j=0;j<k;j++) {
            int vi;
            cin >> vi;
            st.insert(vi);
        }
        bool traitor = true;
        for(auto itr=st.begin();itr!=st.end();itr++) {
            if(st.count(-*itr)) {
                traitor = false;
                break;
            }
        }
        if(traitor) {
            ans = "YES";
        }
    }

    cout << ans << endl;
}