Submission #71697810


Source Code Expand

#include <iostream>
#include <algorithm>
#include <deque>
#include <vector>
#include <queue>
#include <cmath>
#include <unordered_set>
#include <unordered_map>
#include <map>
#include <set>
using namespace std;

int n;
int a[300001], parent[300001], len[300001];

int find(int x) {
	if (x == parent[x]) return x;
	return parent[x] = find(parent[x]);
}

void merge(int x, int y) {
	x = find(x);
	y = find(y);
	if (x == y) return;
	parent[y] = x;
	len[x] += len[y];
}

int main() {
	ios::sync_with_stdio(false);
	cin.tie(NULL);
	
	cin >> n;
	for (int i = 1; i <= n; i++) {
		cin >> a[i];
		parent[i] = i;
		len[i] = 1;
	}
	
	for (int i = 1; i <= n; i++) {
		merge(i, a[i]);
	}
	
	long long ret = 0;

	for (int i = 1; i <= n; i++) {
		if (parent[i] == i) {
			ret += (long long)len[i] * (len[i] - 1) / 2;
		}
	}
	cout << ret;
}

Submission Info

Submission Time
Task E - Minimum Swap
User cocoyi00
Language C++23 (GCC 15.2.0)
Score 475
Code Size 875 Byte
Status AC
Exec Time 17 ms
Memory 7288 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 475 / 475
Status
AC × 3
AC × 53
Set Name Test Cases
Sample 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt
All 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 01_random_03.txt, 01_random_04.txt, 01_random_05.txt, 01_random_06.txt, 01_random_07.txt, 01_random_08.txt, 01_random_09.txt, 01_random_10.txt, 01_random_11.txt, 01_random_12.txt, 01_random_13.txt, 01_random_14.txt, 01_random_15.txt, 01_random_16.txt, 01_random_17.txt, 01_random_18.txt, 01_random_19.txt, 01_random_20.txt, 01_random_21.txt, 01_random_22.txt, 01_random_23.txt, 01_random_24.txt, 01_random_25.txt, 01_random_26.txt, 01_random_27.txt, 01_random_28.txt, 01_random_29.txt, 01_random_30.txt, 01_random_31.txt, 01_random_32.txt, 01_random_33.txt, 01_random_34.txt, 01_random_35.txt, 01_random_36.txt, 01_random_37.txt, 01_random_38.txt, 01_random_39.txt, 01_random_40.txt, 01_random_41.txt, 01_random_42.txt, 01_random_43.txt, 01_random_44.txt, 01_random_45.txt, 01_random_46.txt, 01_random_47.txt, 01_random_48.txt, 01_random_49.txt, 01_random_50.txt, 01_random_51.txt, 01_random_52.txt
Case Name Status Exec Time Memory
00_sample_00.txt AC 1 ms 3608 KiB
00_sample_01.txt AC 1 ms 3532 KiB
00_sample_02.txt AC 1 ms 3504 KiB
01_random_03.txt AC 16 ms 7152 KiB
01_random_04.txt AC 16 ms 7252 KiB
01_random_05.txt AC 16 ms 7140 KiB
01_random_06.txt AC 16 ms 7136 KiB
01_random_07.txt AC 16 ms 7252 KiB
01_random_08.txt AC 16 ms 7216 KiB
01_random_09.txt AC 16 ms 7124 KiB
01_random_10.txt AC 16 ms 7148 KiB
01_random_11.txt AC 16 ms 7196 KiB
01_random_12.txt AC 16 ms 7100 KiB
01_random_13.txt AC 16 ms 7124 KiB
01_random_14.txt AC 16 ms 7200 KiB
01_random_15.txt AC 16 ms 7136 KiB
01_random_16.txt AC 9 ms 5564 KiB
01_random_17.txt AC 9 ms 5436 KiB
01_random_18.txt AC 2 ms 3868 KiB
01_random_19.txt AC 4 ms 4460 KiB
01_random_20.txt AC 16 ms 7136 KiB
01_random_21.txt AC 17 ms 7124 KiB
01_random_22.txt AC 16 ms 7252 KiB
01_random_23.txt AC 16 ms 7104 KiB
01_random_24.txt AC 16 ms 7148 KiB
01_random_25.txt AC 16 ms 7144 KiB
01_random_26.txt AC 16 ms 7112 KiB
01_random_27.txt AC 16 ms 7136 KiB
01_random_28.txt AC 16 ms 7136 KiB
01_random_29.txt AC 16 ms 7216 KiB
01_random_30.txt AC 16 ms 7144 KiB
01_random_31.txt AC 16 ms 7288 KiB
01_random_32.txt AC 16 ms 7252 KiB
01_random_33.txt AC 16 ms 7136 KiB
01_random_34.txt AC 16 ms 7096 KiB
01_random_35.txt AC 15 ms 7196 KiB
01_random_36.txt AC 14 ms 7136 KiB
01_random_37.txt AC 7 ms 5180 KiB
01_random_38.txt AC 9 ms 5588 KiB
01_random_39.txt AC 10 ms 5728 KiB
01_random_40.txt AC 16 ms 7020 KiB
01_random_41.txt AC 5 ms 4656 KiB
01_random_42.txt AC 7 ms 5020 KiB
01_random_43.txt AC 3 ms 3960 KiB
01_random_44.txt AC 8 ms 5308 KiB
01_random_45.txt AC 6 ms 4844 KiB
01_random_46.txt AC 12 ms 7144 KiB
01_random_47.txt AC 12 ms 7196 KiB
01_random_48.txt AC 11 ms 7152 KiB
01_random_49.txt AC 12 ms 7088 KiB
01_random_50.txt AC 12 ms 7088 KiB
01_random_51.txt AC 12 ms 7172 KiB
01_random_52.txt AC 12 ms 7152 KiB