Pagini recente » Cod sursa (job #2402091) | Cod sursa (job #841130) | Cod sursa (job #2345566) | Cod sursa (job #593743) | Cod sursa (job #2080436)
#include<fstream>
#include<vector>
#include<queue>
using namespace std;
ifstream f("disjoint.in");
ofstream g("disjoint.out");
long long ap[100001],n,m,x,y,k,v,q1,ok1=0,nr,i,j,ok,i1,x1;
vector<int>G[100001];
queue<int>q;
void bfs(int r)
{
q.push(r);
while(!q.empty())
{
x1=q.front();
q.pop();
ap[x1]=ok;
for(int i=0;i<G[x1].size();i++)
if(ap[G[x1][i]]==0){
q.push(G[x1][i]);
ap[G[x1][i]]=ok;
}
}
}
int main()
{
f>>n>>m;
ok=1;
ok1=1;
for(i=1;i<=m;i++)
{
f>>q1>>x>>y;
if(q1==1)
{
G[x].push_back(y);
G[y].push_back(x);
ok1=1;
}
else
{
if(ok1)
{
for(i1=1;i1<=n;i1++)
{
ap[i1]=0;
ok=1;
}
nr=0;
for(i1=1;i1<=n;i1++)
{
if(ap[i1]==0)
{
bfs(i1);
nr++;
ok++;
}
}
}
ok1=0;
if(ap[x]==ap[y])
g<<"DA"<<'\n';
else
g<<"NU"<<'\n';
}
}
return 0;
}