101382024-03-28 00:03:59111Turista járatokcpp17Hibás válasz 10/100164ms60080 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]&&b){
					if(w[j]==i||w[j]==j){
						u[j]=1;
					}
					else{
						for(auto[k,_]:g[w[j]]){
							if(v[k]<v[w[j]]){
								continue;
							}
							u[k]=1;
						}
					}
				}
				if(v[j]>=v[i]-1){
					continue;
				}
				if(v[j]<v[w[i]]){
					w[i]=j;
				}
				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||w[j]==j){
					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
2Elfogadva9ms4768 KiB
subtask20/10
3Elfogadva3ms2272 KiB
4Elfogadva3ms2444 KiB
5Elfogadva3ms2824 KiB
6Hibás válasz3ms2788 KiB
7Hibás válasz3ms3160 KiB
subtask310/10
8Elfogadva3ms3136 KiB
9Elfogadva3ms3208 KiB
10Elfogadva3ms3456 KiB
11Elfogadva3ms3776 KiB
12Elfogadva4ms4552 KiB
subtask40/10
13Elfogadva7ms5504 KiB
14Elfogadva3ms3744 KiB
15Elfogadva3ms3996 KiB
16Elfogadva4ms4464 KiB
17Hibás válasz164ms58864 KiB
18Hibás válasz48ms15760 KiB
19Hibás válasz61ms19716 KiB
20Hibás válasz46ms16156 KiB
subtask50/10
21Elfogadva9ms6808 KiB
22Hibás válasz3ms4844 KiB
23Elfogadva3ms4808 KiB
24Hibás válasz3ms4820 KiB
25Hibás válasz90ms35872 KiB
26Hibás válasz8ms6876 KiB
27Hibás válasz8ms7036 KiB
subtask60/60
28Hibás válasz3ms5212 KiB
29Elfogadva3ms5228 KiB
30Elfogadva4ms5484 KiB
31Elfogadva4ms5832 KiB
32Hibás válasz4ms5980 KiB
33Elfogadva6ms6152 KiB
34Elfogadva8ms7232 KiB
35Elfogadva9ms7508 KiB
36Elfogadva9ms7444 KiB
37Hibás válasz164ms60080 KiB
38Hibás válasz48ms17028 KiB
39Hibás válasz46ms16900 KiB
40Hibás válasz46ms16904 KiB
41Hibás válasz46ms16904 KiB
42Hibás válasz48ms17032 KiB
43Hibás válasz48ms16900 KiB
44Hibás válasz46ms16900 KiB
45Hibás válasz64ms20672 KiB
46Hibás válasz46ms16976 KiB
47Hibás válasz48ms16900 KiB
48Hibás válasz46ms16952 KiB
49Hibás válasz46ms16936 KiB
50Hibás válasz46ms16900 KiB