C언어 계열

백준 1043

el

elecball_
질문 종료
30 XP

문제 : https://www.acmicpc.net/problem/1043

아이디어 : 각 파티를 이진수로 바꿔 비트연산자로 비교, 진실을 알 수 있는 자가 생기면 T[0]을 리셋하고 다시 진행

코드 :

#include <bits/stdc++.h>
using namespace std;;
vector<long long> T;

int main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    int N,M,t,k,c=0;
    cin>>N>>M;
    for(int i=0;i<=M;i++){
        cin>>t;
        long long l=0;
        for(int j=0;j<t;j++){
            cin>>k;
            l+=(1<<k);
        }
        T.push_back(l);
    }
    for(int i=1;i<=M;i++){
        if(T[i]&T[0]){
            if((T[i]|T[0])!=T[0]){
                T[0]|=T[i];
                i=0;c=0;
                continue;
            }
        }
        else c++;
    }
    cout<<c;
}

결과 : 틀렸습니다
예제는 다 작동합니다


불러오는 중...