216152026-01-13 17:16:34algoproEgyirányú egyensúlycpp17Futási hiba 13/5039ms2360 KiB
// UUID: 6b555500-85ae-486c-abe8-120bde7dc5a5
#include <bits/stdc++.h>
using namespace std;

vector<vector<pair<int,int>>>g;
vector<pair<int,int>>edge;
vector<int>dir;
bool found=false;

void dfs(int x){
	while(!g[x].empty() && !found){
		pair<int,int>y=g[x].back();
		g[x].pop_back();
		if(dir[y.second]==0){
			dir[y.second]=y.first;
			dfs(y.first);
		}
	}
	found=true;
}

int main() {
	int n,m;cin>>n>>m;
	g.resize(n+1);edge.resize(n+1);dir.resize(n+1);
	for(int i=1;i<=m;i++){
		int u,v;cin>>u>>v;
		g[u].push_back({v,i});
		g[v].push_back({u,i});
		edge[i]={u,v};
	}
	int c=0;
	for(int i=1;i<=n;i++)if(g[i].size()%2==1)c++;
	for(int i=1;i<=n;i++){
		if(!g[i].empty()){
			found=false;
			dfs(i);
		}
	}
	cout<<c<<'\n';
	for(int i=1;i<=m;i++){
		if(edge[i].second==dir[i])cout<<"-> ";
		else cout<<"<- ";
	}
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base13/50
1Elfogadva0/01ms316 KiB
2Futási hiba0/012ms1076 KiB
3Elfogadva2/21ms316 KiB
4Futási hiba0/21ms316 KiB
5Elfogadva2/21ms392 KiB
6Futási hiba0/21ms316 KiB
7Futási hiba0/21ms316 KiB
8Futási hiba0/22ms316 KiB
9Elfogadva2/21ms316 KiB
10Futási hiba0/21ms512 KiB
11Elfogadva2/21ms316 KiB
12Elfogadva2/21ms316 KiB
13Futási hiba0/36ms764 KiB
14Hibás válasz0/317ms1528 KiB
15Elfogadva3/318ms1844 KiB
16Futási hiba0/34ms564 KiB
17Hibás válasz0/310ms1332 KiB
18Futási hiba0/37ms820 KiB
19Futási hiba0/37ms820 KiB
20Futási hiba0/332ms2304 KiB
21Futási hiba0/39ms1076 KiB
22Futási hiba0/339ms2360 KiB