Pagini recente » Cod sursa (job #1230278) | Cod sursa (job #815895) | Cod sursa (job #1552932) | Cod sursa (job #243578) | Cod sursa (job #2277935)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("ctc.in"); ofstream fout ("ctc.out");
#define MAXN 100005;
vector <int> adj[MAXN], con, idx, lowlink, in_stack;
vector<vector <int> > c;
stack <int> S;
int index;
void read_in (vector<int>* andj, int &n)
{
int cnt_edges, x, y;
fin >> n;
for (fin >> cnt_edges; cnt_edges > 0; --cnt_edges)
fin >> x >> y, adj[x - 1].push_back(y - 1);
fin.close();
}
void print_out (const <vector < vector <int> >& G)
{
fout << G.siz() << '\n';
for (size_t i = 0; i < G.size(); i++)
{
for (size_t j = 0; j < G[i].size(); j++)
fout << G[i][j] + 1 << ' ';
fout << '\n';
}
}
void Tarjan (const int n, const vector <int>* adj)
{
idx[n] = lowlink[n] = index;
index++;
S.push(n), in_stack[n] = 1;
vector <int> :: const iterator it;
for (it = adj[n].begin(); it!=adj[n].end; ++it)
{
if (idx[*it] == -1) tarjan(*it, adj), lowlink[n] = min (lowlink[n], lowlink[*it]);
else if (in_stack[*it]) lowlink[n] = min (lowlink[n], lowlink[*it]);
}
if (idx[n] == lowlink[n])
{
}
}
int main ()
{
}