Pagini recente » Cod sursa (job #951862) | Cod sursa (job #1040471) | Cod sursa (job #1829817) | Cod sursa (job #115100) | Cod sursa (job #2873108)
#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;
}