1419 | 2022. 09. 09 12:14:02 | kicsiboglar | Sportos nyaralás | cpp11 | Elfogadva 40/40 | 98ms | 24088 KiB |
#include <iostream>
#include <vector>
#include <deque>
#include <map>
#define ll long long
using namespace std;
ll n,i,a,mini=9999999,b,k;
struct element
{
bool seen=false;
vector <ll> bike,kayak;
ll compbike,compk;
};
vector <element> x;
vector <ll> res;
void BFS (ll start,bool id)
{
deque<ll> v;
v.push_back(start);
x[start].seen=true;
ll curr;
while (!v.empty())
{
curr=v[0];
v.pop_front();
if (id)
{
for (auto &e:x[curr].bike)
{
if (!x[e].seen)
{
x[e].seen=true;
x[e].compbike=x[curr].compbike;
v.push_back(e);
}
}
}
else
{
for (auto &e:x[curr].kayak)
{
if (!x[e].seen)
{
x[e].seen=true;
x[e].compk=x[curr].compk;
/*if (x[e].compbike==x[curr].compbike&&x[curr].compbike!=0)
{
res[e]++;
res[curr]++;
}*/
v.push_back(e);
}
}
}
}
}
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(0); cout.tie(0);
cin>>n>>b>>k;
x.resize(n+1);
ll p,q;
res.resize(n+1);
for (i=1;i<=b;++i)
{
cin>>p>>q;
x[p].bike.push_back(q);
x[q].bike.push_back(p);
}
for (i=1;i<=k;++i)
{
cin>>p>>q;
x[p].kayak.push_back(q);
x[q].kayak.push_back(p);
}
ll nr=0;
for (i=1;i<=n;++i)
{
if (!x[i].seen)
{
nr++;
x[i].compbike=nr;
BFS(i,true);
}
}
for (i=1;i<=n;++i) x[i].seen=false;
nr=0;
for (i=1;i<=n;++i)
{
if(!x[i].seen)
{
nr++;
x[i].compk=nr;
BFS(i,false);
}
}
map <pair<ll,ll> ,ll >components;
pair<ll,ll> id;
for (i=1;i<=n;++i)
{
id.first=x[i].compbike;
id.second=x[i].compk;
components[id]++;
}
/* ll j;
for (i=1;i<n;++i)
{
for (j=i+1;j<=n;++j)
{
if (x[i].compbike!=0&&x[i].compk!=0)
{
if (x[i].compbike==x[j].compbike&&x[i].compk==x[j].compk)
{
res[i]++;
res[j]++;
}
}
}
}*/
for (i=1;i<=n;++i)
{
id.first=x[i].compbike;
id.second=x[i].compk;
cout<<components[id]-1<<" ";
}
}
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
base | 40/40 | ||||||
1 | Elfogadva | 0/0 | 3ms | 1896 KiB | |||
2 | Elfogadva | 0/0 | 86ms | 21484 KiB | |||
3 | Elfogadva | 1/1 | 2ms | 2328 KiB | |||
4 | Elfogadva | 1/1 | 2ms | 2432 KiB | |||
5 | Elfogadva | 1/1 | 2ms | 2624 KiB | |||
6 | Elfogadva | 1/1 | 2ms | 2824 KiB | |||
7 | Elfogadva | 1/1 | 2ms | 2908 KiB | |||
8 | Elfogadva | 1/1 | 2ms | 3008 KiB | |||
9 | Elfogadva | 1/1 | 2ms | 2972 KiB | |||
10 | Elfogadva | 1/1 | 3ms | 3356 KiB | |||
11 | Elfogadva | 2/2 | 3ms | 3296 KiB | |||
12 | Elfogadva | 2/2 | 4ms | 3520 KiB | |||
13 | Elfogadva | 2/2 | 8ms | 4780 KiB | |||
14 | Elfogadva | 2/2 | 7ms | 4404 KiB | |||
15 | Elfogadva | 2/2 | 37ms | 13440 KiB | |||
16 | Elfogadva | 2/2 | 50ms | 17076 KiB | |||
17 | Elfogadva | 3/3 | 64ms | 20636 KiB | |||
18 | Elfogadva | 3/3 | 64ms | 20488 KiB | |||
19 | Elfogadva | 2/2 | 45ms | 13856 KiB | |||
20 | Elfogadva | 2/2 | 59ms | 17804 KiB | |||
21 | Elfogadva | 2/2 | 75ms | 20624 KiB | |||
22 | Elfogadva | 2/2 | 71ms | 21128 KiB | |||
23 | Elfogadva | 3/3 | 86ms | 21860 KiB | |||
24 | Elfogadva | 3/3 | 98ms | 24088 KiB |