242302026-02-07 10:19:48sarminTestnevelés óracpp17Hibás válasz 48/50669ms41392 KiB
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
// const ll MOD = 1e9+7;

#define all(x) x.begin(), x.end()
#define rall(x) x.rbegin(), x.rend()

vector<bool> vis;
vector<bool> ki;
vector<int> res;
vector<vector<int>> g;

bool nem = false;
void dfs(int cur) {
	vis[cur] = true;
	for (int i : g[cur]) {
		if (!vis[i]) dfs(i);
		else if (!ki[i]) {
			nem = true; return;
		}
	}
	ki[cur] = true;
	res.push_back(cur);
}

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    int n, k; cin >> n >> k;
    g.resize(n+1); int u, v;
    map<pair<int, int>, bool> m;
    for (int i = 0; i < k; i++) {
    	cin >> u >> v;
    	g[u].push_back(v);
    	m[{u, v}] = true;
    	m[{v, u}] = true;
    }
    
    vis.resize(n+1, false);
    ki.resize(n+1, false);
    for (int i = 1; i <= n; i++) {
    	if (!vis[i]) dfs(i);
    }
    
    if (nem) {
    	cout << "-1\n";
    }
    
    reverse(res.begin(), res.end());
    vector<int> res2;
    
    for (int i = 1; i < n; i++) {
    	if (!m[{res[i-1], res[i]}]) {
    		res2 = res;
    		swap(res2[i], res2[i-1]);
    		break;
    	}
    }
    
    cout << (res2.size() == 0 ? 1 : 2) << "\n";
    
    for (int i : res) cout << i << " ";
    if (res2.size() == 0) return 0;
    cout << "\n";
    
    for (int i : res2) cout << i << " ";

    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base48/50
1Elfogadva0/01ms316 KiB
2Elfogadva0/01ms316 KiB
3Elfogadva0/0657ms32172 KiB
4Elfogadva2/21ms316 KiB
5Elfogadva3/31ms316 KiB
6Elfogadva3/31ms316 KiB
7Elfogadva3/31ms316 KiB
8Hibás válasz0/12ms316 KiB
9Elfogadva3/31ms316 KiB
10Elfogadva3/34ms820 KiB
11Elfogadva3/34ms824 KiB
12Hibás válasz0/14ms820 KiB
13Elfogadva2/24ms820 KiB
14Elfogadva3/32ms564 KiB
15Elfogadva1/1669ms29464 KiB
16Elfogadva3/3293ms25772 KiB
17Elfogadva5/541ms9244 KiB
18Elfogadva1/1451ms38180 KiB
19Elfogadva2/2472ms28888 KiB
20Elfogadva3/3638ms36188 KiB
21Elfogadva4/4600ms41392 KiB
22Elfogadva4/4455ms38312 KiB