101352024-03-27 23:53:13111Turista járatokcpp17Hibás válasz 0/100172ms75564 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){
					u[j]=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
1Elfogadva3ms1956 KiB
2Elfogadva9ms5084 KiB
subtask20/10
3Elfogadva3ms2500 KiB
4Elfogadva3ms2512 KiB
5Elfogadva3ms2864 KiB
6Hibás válasz3ms2824 KiB
7Hibás válasz3ms3172 KiB
subtask30/10
8Hibás válasz3ms3248 KiB
9Hibás válasz3ms3328 KiB
10Hibás válasz3ms3400 KiB
11Hibás válasz3ms3624 KiB
12Hibás válasz4ms4428 KiB
subtask40/10
13Hibás válasz7ms5640 KiB
14Hibás válasz3ms3892 KiB
15Hibás válasz3ms4240 KiB
16Hibás válasz4ms4432 KiB
17Hibás válasz157ms62960 KiB
18Hibás válasz48ms20624 KiB
19Hibás válasz64ms25816 KiB
20Hibás válasz48ms23404 KiB
subtask50/10
21Hibás válasz9ms13880 KiB
22Hibás válasz3ms11688 KiB
23Elfogadva3ms11784 KiB
24Hibás válasz3ms12060 KiB
25Hibás válasz90ms45908 KiB
26Hibás válasz9ms17292 KiB
27Hibás válasz8ms17304 KiB
subtask60/60
28Hibás válasz3ms15720 KiB
29Elfogadva3ms15972 KiB
30Hibás válasz4ms16164 KiB
31Hibás válasz4ms16444 KiB
32Hibás válasz6ms16796 KiB
33Elfogadva6ms17120 KiB
34Elfogadva9ms18536 KiB
35Elfogadva10ms18732 KiB
36Elfogadva9ms18984 KiB
37Hibás válasz172ms75564 KiB
38Hibás válasz50ms33392 KiB
39Hibás válasz48ms34304 KiB
40Hibás válasz50ms35204 KiB
41Hibás válasz48ms36088 KiB
42Hibás válasz48ms37112 KiB
43Hibás válasz48ms37880 KiB
44Hibás válasz46ms38800 KiB
45Hibás válasz64ms43888 KiB
46Hibás válasz48ms41040 KiB
47Hibás válasz48ms41900 KiB
48Hibás válasz48ms43060 KiB
49Hibás válasz48ms43928 KiB
50Hibás válasz46ms44820 KiB