Pagini recente » Cod sursa (job #1659240) | Cod sursa (job #1669269) | Cod sursa (job #667369) | Cod sursa (job #1320529) | Cod sursa (job #573532)
Cod sursa(job #573532)
#include<fstream>
#include<vector>
using namespace std;
vector<int> g[100010];
int v[100010],n,m,q;
ifstream in("gossips.in");
int tata(int i)
{
while (v[i])
i=v[i];
return i;
}
void initializare()
{
int i,x,y;
in>>n>>m>>q;
for (i=1;i<=m;i++)
{
in>>x>>y;
v[y]=x;
}
/*for (i=1;i<=n;i++)
v[i]=tata(i);*/
}
int main()
{
int op,x,y,i,j,ok;
initializare();
ofstream out("gossips.out");
for (;q;q--)
{
in>>op>>x>>y;
if (op==1)
{
x=tata(x);
//y=v[y];
ok=1;
for (i=0;i<(int)g[x].size()&&ok;i++)
{
j=g[x][i];
while (v[j]&&ok)
{
if (j==y)
{
out<<"YES\n";
ok=0;
}
j=v[j];
}
}
if (ok)
out<<"NO\n";
}
if (op==2);
{
x=tata(x);
//y=v[y];
g[x].push_back(y);
}
}
}