Cod sursa(job #2898168)

Utilizator DizzYForesterPOPESCU CONSTANTIN MADALIN DizzYForester Data 6 mai 2022 11:37:37
Problema Problema rucsacului Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.86 kb
#include <iostream>
#include <algorithm>
#include <vector>
#include <string>
#include <unordered_map>
#include <utility>
#define ll long long

using namespace std;

vector<bool> viz;
vector<bool> viz2;
vector<vector<int>> li;

void dfs(int k)
{
	viz[k] = true;
	viz2[k] = true;
	cout << k << '\n';
	for (int i = 0; i < li[k].size(); i++)
		if (viz[li[k][i]] == false)
		{
			dfs(li[k][i]);
		}
}

int main() {
	ios_base::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);

	int n, m, x, y;
	cin >> n >> m;
	li.resize(n + 1);
	viz.resize(n + 1, false);
	viz2.resize(n + 1, false);

	while (m--)
	{
		cin >> x >> y;
		viz2[y] = true;
		li[x].push_back(y);
	}

	bool ok = false;
	for (int i = 1; i <= n; i++)
	{
		if (!viz2[i])
		{
			ok = true;
			dfs(i);
		}
	}

	if (!ok)
	{
		cout << "IMPOSSIBLE";
		return 0;
	}

	return 0;
}