Submission #62562544


Source Code Expand

#include<bits/stdc++.h>
using namespace std;
const int N=2e5+5;
class DSU
{
	private:
		int fa[N];
	public:
		void init(int n){for(int i=1;i<=n;i++)fa[i]=i;}
		int find(int x){return (fa[x]==x?x:fa[x]=find(fa[x]));}
		void merge(int x,int y){fa[find(x)]=find(y);}
		bool same(int x,int y){return find(x)==find(y);}
}dsu;
bool flg[N],vis[N];
int u[N],v[N],id[N],num[N];
deque<int>que;
signed main()
{
    ios::sync_with_stdio(false);
    cin.tie(0),cout.tie(0);
    int n,m;
    cin>>n>>m;
    dsu.init(N-1);
    int tot=0;
    for(int i=1;i<=m;i++)
    {
        cin>>u[i]>>v[i];
        if(dsu.same(u[i],v[i]))num[++tot]=i;
        else dsu.merge(u[i],v[i]);
    }
    int ans=0;
    for(int i=1;i<=n;i++)
    {
        id[i]=dsu.find(i);
        if(!flg[id[i]])flg[id[i]]=true,ans++;
    }
    cout<<ans-1<<'\n';
    for(int i=1;i<=n;i++)
        if(!vis[id[i]])vis[id[i]]=true,que.push_back(id[i]);
    for(int i=1;i<ans;i++)
    {
        cout<<num[i]<<' '<<v[num[i]]<<' ';
        while(dsu.find(v[num[i]])==dsu.find(que.front()))que.pop_front();
        cout<<que.front()<<'\n';
        dsu.merge(v[num[i]],que.front());
    }
    return 0;
}

Submission Info

Submission Time
Task E - Cables and Servers
User stswkl
Language C++ 20 (gcc 12.2)
Score 450
Code Size 1195 Byte
Status AC
Exec Time 44 ms
Memory 9516 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 450 / 450
Status
AC × 3
AC × 22
Set Name Test Cases
Sample sample_01.txt, sample_02.txt, sample_03.txt
All random_01.txt, random_02.txt, random_03.txt, random_04.txt, random_05.txt, random_06.txt, random_07.txt, random_08.txt, random_09.txt, random_10.txt, random_11.txt, random_12.txt, random_13.txt, random_14.txt, random_15.txt, random_16.txt, random_17.txt, random_18.txt, random_19.txt, sample_01.txt, sample_02.txt, sample_03.txt
Case Name Status Exec Time Memory
random_01.txt AC 16 ms 5892 KiB
random_02.txt AC 12 ms 6008 KiB
random_03.txt AC 3 ms 4424 KiB
random_04.txt AC 1 ms 4340 KiB
random_05.txt AC 21 ms 6260 KiB
random_06.txt AC 13 ms 6364 KiB
random_07.txt AC 4 ms 4532 KiB
random_08.txt AC 2 ms 4256 KiB
random_09.txt AC 18 ms 6084 KiB
random_10.txt AC 9 ms 5332 KiB
random_11.txt AC 27 ms 6604 KiB
random_12.txt AC 2 ms 4224 KiB
random_13.txt AC 29 ms 6788 KiB
random_14.txt AC 27 ms 6668 KiB
random_15.txt AC 29 ms 6668 KiB
random_16.txt AC 26 ms 6584 KiB
random_17.txt AC 40 ms 7580 KiB
random_18.txt AC 44 ms 9516 KiB
random_19.txt AC 2 ms 4204 KiB
sample_01.txt AC 1 ms 4388 KiB
sample_02.txt AC 1 ms 4240 KiB
sample_03.txt AC 1 ms 4240 KiB