101372024-03-28 00:00:07111Turista járatokcpp17Hibás válasz 0/100165ms60452 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){
					u[i]=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){
					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
2Elfogadva9ms4560 KiB
subtask20/10
3Elfogadva3ms2236 KiB
4Elfogadva3ms2444 KiB
5Elfogadva3ms2664 KiB
6Hibás válasz3ms2744 KiB
7Hibás válasz3ms2864 KiB
subtask30/10
8Hibás válasz3ms2748 KiB
9Hibás válasz3ms2744 KiB
10Hibás válasz3ms2880 KiB
11Hibás válasz3ms3320 KiB
12Hibás válasz4ms4308 KiB
subtask40/10
13Hibás válasz7ms5124 KiB
14Hibás válasz3ms3404 KiB
15Hibás válasz3ms3656 KiB
16Hibás válasz4ms3896 KiB
17Hibás válasz165ms59684 KiB
18Hibás válasz48ms15448 KiB
19Hibás válasz64ms19096 KiB
20Hibás válasz48ms15324 KiB
subtask50/10
21Hibás válasz8ms6008 KiB
22Hibás válasz3ms4044 KiB
23Elfogadva3ms4028 KiB
24Hibás válasz3ms4300 KiB
25Hibás válasz86ms35388 KiB
26Hibás válasz8ms6324 KiB
27Hibás válasz8ms6348 KiB
subtask60/60
28Hibás válasz3ms4368 KiB
29Elfogadva3ms4384 KiB
30Hibás válasz4ms4728 KiB
31Hibás válasz4ms5012 KiB
32Hibás válasz4ms5348 KiB
33Elfogadva6ms5624 KiB
34Elfogadva9ms6700 KiB
35Elfogadva9ms6848 KiB
36Elfogadva9ms6704 KiB
37Hibás válasz165ms60452 KiB
38Hibás válasz48ms16060 KiB
39Hibás válasz48ms16208 KiB
40Hibás válasz46ms16172 KiB
41Hibás válasz48ms16180 KiB
42Hibás válasz48ms16200 KiB
43Hibás válasz48ms16420 KiB
44Hibás válasz48ms16272 KiB
45Hibás válasz64ms20344 KiB
46Hibás válasz48ms16484 KiB
47Hibás válasz48ms16504 KiB
48Hibás válasz46ms16500 KiB
49Hibás válasz46ms16504 KiB
50Hibás válasz48ms16488 KiB