Pagini recente » Cod sursa (job #912266) | Cod sursa (job #2207711) | Cod sursa (job #751342) | Cod sursa (job #2459131) | Cod sursa (job #598952)
Cod sursa(job #598952)
#include <fstream>
using namespace std;
ifstream f("disjoint.in");
ofstream g("disjoint.out");
int a[100005][100],n,m,i,c,x,y,k;
bool b[100005];
void uneste(int x, int y)
{
a[x][++a[x][0]]=y;
}
bool da(int x, int y)
{
b[x]=1;
bool bb=0;
for (int i=1; i<=a[x][0]; i++)
if (a[x][i]==y) {bb=1; break;} else
{if (!b[a[x][i]]) bb=da(a[x][i],y); if (bb) break;}
b[x]=0;
if (bb) return 1; else return 0;
}
int main()
{
f >> n >> m;
fill_n(b,n+1,0);
for (i=1;i<=n; i++)
a[i][0]=0;
for (i=0; i<m; i++)
{
f >> c >> x >> y;
if (c==1) uneste(x,y), uneste(y,x); else
if (da(x,y)) k=0, g << "DA\n"; else k=0, g << "NU\n" ;
}
}