Cod sursa(job #2873108)

Utilizator matei0000Neacsu Matei matei0000 Data 18 martie 2022 17:51:42
Problema Factoriale Scor 0
Compilator cpp-64 Status done
Runda concursceva1 Marime 1.21 kb
#include <fstream>
#include <map>
#include <vector>

using namespace std;

vector < vector < int > > v;
map < int, vector < int > > umap;
map < int , bool > mp;
vector < int > gol;

ifstream cin("invite.in");
ofstream cout("invite.out");

int cnt=1;
void DFS(int vaca)
{
    for(int i=0;i<umap[vaca].size();i++)
    {
        int ok=0,vc=-1;
        for(int j=0;j<v[umap[vaca][i]].size();j++)
        {
            if(mp[v[umap[vaca][i]][j]]==false)
            {
                if(ok==0)
                {
                    ok=1;
                    vc=v[umap[vaca][i]][j];
                }
                else
                {
                    ok=2;
                    break;
                }
            }
        }
        if(ok==1)
        {
            mp[vc]=true;
            cnt++;
            DFS(vc);
        }
    }
}

int main()
{
    int n,g;
    cin>>n>>g;
    mp[1]=true;
    for(int i=0; i<g; i++)
    {
        v.push_back(gol);
        int a,m;
        cin>>m;
        for(int j=0; j<m; j++)
        {
            cin>>a;
            v[i].push_back(a);
            umap[a].push_back(i);
        }
    }
    DFS(1);
    cout<<cnt;
    return 0;
}