878 | 2022. 01. 24 23:15:24 | Babják Péter | Egyirányú egyensúly | cpp11 | Elfogadva 50/50 | 93ms | 24340 KiB |
#include <bits/stdc++.h>
#define MAXN 50100
#define pii pair<int,int>
using namespace std;
int n,m,db;
multiset<array<int,3> >adj[MAXN];
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]);
}
}
signed main()
{
cin>>n>>m;
for(int i=0;i<m;i++)
{
int a,b;
cin>>a>>b;
adj[a].insert({b,a,i});
adj[b].insert({a,a,i});
}
vector<int>strt;
for(int i=1;i<=n;i++)
{
if(adj[i].size()%2==1)
{
strt.push_back(i);
db++;
}
}
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<<db<<'\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 | 6496 KiB | |||
2 | Elfogadva | 0/0 | 85ms | 17928 KiB | |||
3 | Elfogadva | 2/2 | 3ms | 6904 KiB | |||
4 | Elfogadva | 2/2 | 3ms | 6904 KiB | |||
5 | Elfogadva | 2/2 | 3ms | 6964 KiB | |||
6 | Elfogadva | 2/2 | 3ms | 6920 KiB | |||
7 | Elfogadva | 2/2 | 3ms | 6928 KiB | |||
8 | Elfogadva | 2/2 | 4ms | 7184 KiB | |||
9 | Elfogadva | 2/2 | 3ms | 6948 KiB | |||
10 | Elfogadva | 2/2 | 4ms | 7236 KiB | |||
11 | Elfogadva | 2/2 | 4ms | 7200 KiB | |||
12 | Elfogadva | 2/2 | 4ms | 7200 KiB | |||
13 | Elfogadva | 3/3 | 14ms | 9912 KiB | |||
14 | Elfogadva | 3/3 | 21ms | 11952 KiB | |||
15 | Elfogadva | 3/3 | 27ms | 12688 KiB | |||
16 | Elfogadva | 3/3 | 43ms | 16852 KiB | |||
17 | Elfogadva | 3/3 | 14ms | 10648 KiB | |||
18 | Elfogadva | 3/3 | 41ms | 16528 KiB | |||
19 | Elfogadva | 3/3 | 45ms | 18036 KiB | |||
20 | Elfogadva | 3/3 | 57ms | 20084 KiB | |||
21 | Elfogadva | 3/3 | 68ms | 23760 KiB | |||
22 | Elfogadva | 3/3 | 93ms | 24340 KiB |