
Untitled
By: a guest on
May 1st, 2012 | syntax:
C++ | size: 0.79 KB | hits: 13 | expires: Never
#include <iostream>
#include <list>
#include <queue>
#include <iterator>
using namespace std;
list <int> graph[100];
int mas[100];
queue <int> qu;
int main()
{
int n,buf;
cin >> n;
for (int i=0;i<n;i++) mas[i]=0;
for (int i=0;i<n;i++)
{
cin >> buf;
while (buf)
{
graph[i].push_back(buf-1);
cin >> buf;
}
}
qu.push(0);
mas[0]=1;
while (!qu.empty())
{
int now = qu.front(); qu.pop();
list <int>::iterator it = graph[now].begin();
while (it!=graph[now].end())
{
if (mas[*it]==mas[now]) { cout << -1; return 0;}
if (mas[*it]!=mas[now]*(-1)) { mas[*it]=mas[now]*(-1); qu.push(*it);}
it++;
}
}
for (int i=0;i<n;i++) if (mas[i]==1) cout << 0; else cout << 1;
system ("pause");
return 0;
}