879 | 2022. 01. 24 23:20:00 | Babják Péter | Egyirányú egyensúly | cpp11 | Elfogadva 50/50 | 56ms | 24452 KiB |
#include <bits/stdc++.h>
#define MAXN 50100
#define IO ios_base::sync_with_stdio(false);cin.tie(NULL)
using namespace std;
int n,m,db,a,b;
multiset<array<int,3> >adj[MAXN];
vector<int>strt;
bool dir[MAXN];
void dfs(int v)
{
if(adj[v].empty()==0)
{
array<int,3> u=*adj[v].begin();
adj[v].erase(u);
adj[u[0]].erase({v,u[1],u[2]});
if(u[0]==u[1]) dir[u[2]]=1;
else dir[u[2]]=0;
dfs(u[0]);
}
}
int main()
{
IO;
cin>>n>>m;
for(int i=0;i<m;i++)
{
cin>>a>>b;
adj[a].insert({b,a,i});
adj[b].insert({a,a,i});
}
for(int i=1;i<=n;i++) if(adj[i].size()%2==1) strt.push_back(i);
for(int u:strt) if(adj[u].size()%2==1) dfs(u);
for(int i=1;i<=n;i++) while(adj[i].empty()==0) dfs(i);
cout<<strt.size()<<'\n';
string s[2];
s[0]="<- ";
s[1]="-> ";
for(int i=0;i<m;i++) cout<<s[dir[i]];
return 0;
}
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
base | 50/50 | ||||||
1 | Elfogadva | 0/0 | 4ms | 6620 KiB | |||
2 | Elfogadva | 0/0 | 46ms | 18084 KiB | |||
3 | Elfogadva | 2/2 | 3ms | 7032 KiB | |||
4 | Elfogadva | 2/2 | 3ms | 7052 KiB | |||
5 | Elfogadva | 2/2 | 3ms | 7056 KiB | |||
6 | Elfogadva | 2/2 | 3ms | 7056 KiB | |||
7 | Elfogadva | 2/2 | 3ms | 7060 KiB | |||
8 | Elfogadva | 2/2 | 4ms | 7332 KiB | |||
9 | Elfogadva | 2/2 | 3ms | 7076 KiB | |||
10 | Elfogadva | 2/2 | 12ms | 7376 KiB | |||
11 | Elfogadva | 2/2 | 4ms | 7352 KiB | |||
12 | Elfogadva | 2/2 | 3ms | 7368 KiB | |||
13 | Elfogadva | 3/3 | 10ms | 10056 KiB | |||
14 | Elfogadva | 3/3 | 17ms | 12088 KiB | |||
15 | Elfogadva | 3/3 | 20ms | 12880 KiB | |||
16 | Elfogadva | 3/3 | 35ms | 16960 KiB | |||
17 | Elfogadva | 3/3 | 12ms | 10760 KiB | |||
18 | Elfogadva | 3/3 | 32ms | 16728 KiB | |||
19 | Elfogadva | 3/3 | 34ms | 18172 KiB | |||
20 | Elfogadva | 3/3 | 48ms | 20344 KiB | |||
21 | Elfogadva | 3/3 | 54ms | 23888 KiB | |||
22 | Elfogadva | 3/3 | 56ms | 24452 KiB |