Cod sursa(job #2010987)

Utilizator tifui.alexandruTifui Ioan Alexandru tifui.alexandru Data 14 august 2017 21:46:35
Problema Party Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.5 kb
#include <bits/stdc++.h>

using namespace std;
ifstream f("party.in");
ofstream g("party.out");
bool a[101];
struct cer
{
    int x,y,op;
};
cer v[1001];
int main()
{
    int n,m,i;
    f>>n>>m;
    fill(a+1,a+n+1,true);
    for(i=1;i<=m;i++)
        f>>v[i].op>>v[i].x>>v[i].y;
    bool ok=false;
    while(!ok)
    {
        ok=true;
        for(i=1;i<=m;i++)
        {
            switch (v[i].op)
            {
                case 0:
                    if(!a[v[i].x] and !a[v[i].y])
                    {
                        a[v[i].x]=a[v[i].y]=true;
                        ok=false;
                    }
                break;

                case 1:
                    if(!a[v[i].x] and a[v[i].y])
                    {
                        a[v[i].y]=false;
                        ok=false;
                    }
                break;

                case 2:
                    if(a[v[i].x] and !a[v[i].y])
                    {
                        a[v[i].x]=false;
                        ok=false;
                    }
                break;

                case 3:
                    if(a[v[i].x] and a[v[i].y])
                    {
                        a[v[i].y]=false;
                        ok=false;
                    }

                break;
            }
        }
    }
    int nr=0;
    for(i=1;i<=n;i++)
        if(a[i]) nr++;
    g<<nr<<'\n';
    for(i=1;i<=n;i++)
        if(a[i]) g<<i<<'\n';

    return 0;
}