Pagini recente » Cod sursa (job #880351) | Cod sursa (job #71536) | Cod sursa (job #219686) | Cod sursa (job #678005) | Cod sursa (job #1256735)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
#define MAX 205
ifstream fin("party.in");
ofstream fout("party.out");
typedef vector <int> :: iterator iter;
vector <int> G[MAX];
int viz[MAX], st[MAX], rez[MAX];
void df(int nod)
{
viz[nod]=1;
for(iter it=G[nod].begin();it!=G[nod].end();it++)
{
if(!viz[*it])
df(*it);
}
st[++st[0]]=nod-100;
}
int main()
{
int n, m, x, y, t, i;
fin>>n>>m;
while(m--)
{
fin>>x>>y>>t;
if(t==1 || t==3)
y=-y;
if(t==2 || t==3)
x=-x;
G[-x+100].push_back(y+100);
G[-y+100].push_back(x+100);
}
for(i=-n;i<=n;i++)
{
if(i)
{
if(!viz[i+100])
df(i+100);
}
}
for(i=2*n;i>=1;i--)
{
if(!rez[st[i]+100] && !rez[-st[i]+100])
{
rez[-st[i]+100]=1;
}
}
int s=0;
for(i=1;i<=n;i++)
{
if(rez[i+100])
s++;
}
fout << s << "\n";
for(i=1;i<=n;i++)
{
if(rez[i+100])
fout << i << "\n";
}
}