Cod sursa(job #2875439)

Utilizator RaresFelixTudose Rares Felix RaresFelix Data 21 martie 2022 17:31:49
Problema Pioni Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <bits/stdc++.h>
#define MN 20071

using namespace std;
int te, n, m, V[MN], C[MN];
vector<int> L[MN];

void dfs(int u) {
	V[u] = 1;
	for(auto it : L[u]) {
		if(!V[it]) dfs(it);
		C[u] |= !C[it];
	}
}
int k, F[MN], P[2 * MN];
ifstream fi("pioni.in");
ofstream fo("pioni.out");
void solve() {
	fi >> k;
	int ok = 0;
	for(int i = 1; i <= k; ++i)
		fi >> P[i], ++F[P[i]], ok |= C[P[i]];
	if(ok) {
		fo << "Nargy\n";
		vector<pair<int, int> > Mut;
		for(int i = 1; i <= k; ++i) {
			if(C[P[i]]) {
				for(auto it : L[P[i]])
					if(!C[it]) {
						Mut.push_back({P[i], it});
						break;
					}
			}
		}
		fo << Mut.size() << " ";
		for(auto [a, b] : Mut) fo << a << " " << b << " ";
		fo << "\n";
	} else fo << "Fumeanu\n";
	memset(F, 0, sizeof(F));
}
int main() {
    fi >> te >> n >> m;
	for(int i = 1, u, v; i <= m; ++i) {
		fi >> u >> v;
		L[u].push_back(v);
	}
	for(int i = 1; i <= n; ++i)
		if(!V[i]) dfs(i);
	while(te--) solve();
    return 0;
}