Pagini recente » Borderou de evaluare (job #2712250) | Cod sursa (job #2789277)
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream cin("sortaret.in");
ofstream cout("sortaret.out");
vector<vector<int>>v;
vector<int>gradInt;
int X;
void solve()
{
queue<int>Q;
for(int i = 0; i < X; i++)
{
if(gradInt[i] == false)
{
cout << i + 1 << ' ';
Q.push(i);
}
}
while(!Q.empty())
{
int actual = Q.front();
Q.pop();
for(int i = 0; i < v[actual].size(); i++)
{
gradInt[v[actual][i]]--;
if(gradInt[v[actual][i]] == false)
{
cout << v[actual][i] + 1 << " ";
Q.push(v[actual][i]);
}
}
}
}
int main() {
int U;
cin >> X >> U;
v.resize(X);
gradInt.resize(X);
for (int i = 0; i < U; i++) {
int V1, V2;
cin >> V1 >> V2;
V1--, V2--;
v[V1].push_back(V2);
gradInt[V2]++;
}
solve();
return false;
}