Cod sursa(job #2578294)

Utilizator CReaper1116Shang Cheng Lin CReaper1116 Data 10 martie 2020 20:25:39
Problema Balanta Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 3.25 kb
#include <fstream>

using namespace std;
ifstream cin("balanta.in");
ofstream cout("balanta.out");
int v[1030],v2[1030],v3[1030],v4[1030];///v3 - nr is heavier,v4 - nr is lighter
int main()
{
    int n,m,k,a,nr,cnt = 0,nr2;
    bool g3 = 0,g4 = 0;
    cin>>n>>m;
    for(int x = 0;x < m;x++){
        cin>>k;
        for(int y = 0;y < k;y++){
            cin>>a;
            v[a] = 1;
        }
        for(int y = 0;y < k;y++){
            cin>>a;
            v2[a] = 1;
        }
        cin>>nr;
        if(nr == 0){
            for(int y = 0;y <= 1024;y++){
                if(v[y] == 1 || v2[y] == 1){
                    v3[y] = 1;
                    v4[y] = 1;
                }
            }
        }else if(nr == 1){
            ///verification
            if(g3 == 0){
                g3 = 1;
                for(int y = 0;y <= 1024;y++){
                    if(v[y] == 1){
                        if(v3[y] != 1){
                            g3 = 0;
                            break;
                        }
                    }
                }
                for(int y = 0;y <= 1024;y++){
                    if(v[y] != 1){
                        v3[y] = 1;
                    }
                }
            }
            if(g4 == 0){
                g4 = 1;
                for(int y = 0;y <= 1024;y++){
                    if(v2[y] == 1){
                        if(v4[y] != 1){
                            g4 = 0;
                            break;
                        }
                    }
                }
                for(int y = 0;y <= 1024;y++){
                    if(v2[y] != 1){
                        v4[y] = 1;
                    }
                }
            }
        }else{
            ///verification
            if(g3 == 0){
                g3 = 1;
                for(int y = 0;y <= 1024;y++){
                    if(v2[y] == 1){
                        if(v3[y] != 1){
                            g3 = 0;
                            break;
                        }
                    }
                }
                for(int y = 0;y <= 1024;y++){
                    if(v2[y] != 1){
                        v3[y] = 1;
                    }
                }
            }
            if(g4 == 0){
                g4 = 1;
                for(int y = 0;y <= 1024;y++){
                    if(v[y] == 1){
                        if(v4[y] != 1){
                            g4 = 0;
                            break;
                        }
                    }
                }
                for(int y = 0;y <= 1024;y++){
                    if(v[y] != 1){
                        v4[y] = 1;
                    }
                }
            }
        }
        for(int y = 0;y <= 1024;y++){
            v2[y] = 0;
            v[y] = 0;
        }
    }
    if(g3 == 0){
        for(int x = 1;x <= n;x++){
            if(v3[x] == 0){
                nr2 = x;
                cnt++;
            }
        }
    }
    if(g4 == 0){
        for(int x = 1;x <= n;x++){
            if(v4[x] == 0){
                nr2 = x;
                cnt++;
            }
        }
    }
    if(cnt == 1){
        cout<<nr2;
    }else cout<<0;
    return 0;
}