101362024-03-27 23:55:22111Turista járatokcpp17Hibás válasz 0/100170ms61104 KiB
#include <bits/stdc++.h>
using namespace std;

#define int long long

signed main(){
	ios::sync_with_stdio(false);
	cin.tie(nullptr);
	int N,M,K;
	cin>>N>>M>>K;
	vector<vector<pair<int,int>>>g(N+1);
	for(int i=0;i<M;i++){
		int a,b;
		cin>>a>>b;
		g[a].emplace_back(b,i<K);
		g[b].emplace_back(a,i<K);
	}
	vector<int>v(N+1),w(N+1),u(N+1);
	auto dfs=[&](auto self,int i)->void{
		w[i]=i;
		for(auto[j,b]:g[i]){
			if(v[j]){
				if(v[j]>=v[i]-1){
					continue;
				}
				if(v[j]<v[w[i]]){
					w[i]=j;
				}
				if(b){
					for(auto[k,_]:g[i]){
						u[k]=1;
					}
				}
				continue;
			}
			v[j]=v[i]+1;
			self(self,j);
			if(v[w[j]]<v[w[i]]){
				w[i]=w[j];
			}
			if(b){
				if(w[j]==i){
					u[j]=1;
				}
				else{
					for(auto[k,_]:g[w[j]]){
						if(v[k]<v[w[j]]){
							continue;
						}
						u[k]=1;
					}
				}
			}
		}
	};
	v[1]=1;
	dfs(dfs,1);
	vector<int>ans;
	auto dfs2=[&](auto self,int i,int b)->void{
		if(b){
			ans.push_back(i);
		}
		for(auto[j,_]:g[i]){
			if(v[j]!=v[i]+1){
				continue;
			}
			self(self,j,b||u[j]);
		}
	};
	dfs2(dfs2,1,0);
	sort(ans.begin(),ans.end());
	cout<<ans.size()<<'\n';
	for(int i:ans){
		cout<<i<<' ';
	}
	cout<<'\n';
	return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva3ms1824 KiB
2Elfogadva10ms4772 KiB
subtask20/10
3Elfogadva3ms2280 KiB
4Elfogadva3ms2444 KiB
5Elfogadva3ms2660 KiB
6Hibás válasz3ms2872 KiB
7Hibás válasz3ms2976 KiB
subtask30/10
8Hibás válasz3ms2960 KiB
9Hibás válasz3ms2952 KiB
10Hibás válasz3ms3088 KiB
11Hibás válasz3ms3520 KiB
12Hibás válasz4ms4528 KiB
subtask40/10
13Hibás válasz8ms5536 KiB
14Hibás válasz3ms3800 KiB
15Hibás válasz3ms4016 KiB
16Hibás válasz4ms4388 KiB
17Hibás válasz156ms60384 KiB
18Hibás válasz46ms15912 KiB
19Hibás válasz65ms19956 KiB
20Hibás válasz48ms16292 KiB
subtask50/10
21Hibás válasz9ms6764 KiB
22Hibás válasz3ms4456 KiB
23Elfogadva3ms4488 KiB
24Hibás válasz3ms4636 KiB
25Hibás válasz93ms35760 KiB
26Hibás válasz9ms6752 KiB
27Hibás válasz9ms6820 KiB
subtask60/60
28Hibás válasz3ms4920 KiB
29Elfogadva3ms4812 KiB
30Hibás válasz4ms5064 KiB
31Hibás válasz4ms5312 KiB
32Hibás válasz4ms5556 KiB
33Elfogadva6ms5960 KiB
34Elfogadva9ms7052 KiB
35Elfogadva10ms7424 KiB
36Elfogadva9ms7384 KiB
37Hibás válasz170ms61104 KiB
38Hibás válasz48ms16756 KiB
39Hibás válasz46ms16776 KiB
40Hibás válasz46ms16772 KiB
41Hibás válasz46ms16788 KiB
42Hibás válasz48ms16816 KiB
43Hibás válasz48ms16808 KiB
44Hibás válasz48ms16796 KiB
45Hibás válasz64ms20600 KiB
46Hibás válasz48ms16868 KiB
47Hibás válasz48ms16772 KiB
48Hibás válasz48ms16756 KiB
49Hibás válasz48ms17052 KiB
50Hibás válasz46ms17004 KiB