SQCIR - Editorial

PROBLEM LINK:

Practice
Contest

Author, Tester and Editorialist: Jitin

DIFFICULTY:

EASY

PREREQUISITES:

Sets

PROBLEM:

You are given N squares and N circles of some sizes. You have to find the sum of unique sized squares and unique sized circles.

QUICK EXPLANATION:

Use two C++ STL unordered_set and insert the sizes of squares into one set and sizes of circles into another. Print the sum of sizes of both the sets.

EXPLANATION:

Sets are STL containers which have only unique elements and elements are sorted. Insertion into set takes O(log(n)). An unordered_set also has unique elements but they are not sorted and insertion takes O(1) time on average. So, we can use an unorderes_set for our problem.
Create an unordered_set squares and another unordered_set circles. Insert the sizes of squares into squares set and sizes of circles into circles set. Then add squares.size() and circles.size().

SOLUTIONS

Setter's Solution
 #include <bits/stdc++.h>
#pragma GCC optimize("Ofast")

using namespace std;

typedef long long ll;
typedef long double ld;
#define fast_cin()                    \
	ios_base::sync_with_stdio(false); \
	cin.tie(NULL);                    \
	cout.tie(NULL)

const int mod = 1e9 + 7;
void readInputFile()
{
#ifndef ONLINE_JUDGE
	freopen("input.txt", "r", stdin);
	freopen("output.txt", "w", stdout);
#endif
}

void solve()
{
	int n, temp;
	cin >> n;
	unordered_set<int> squares;
	unordered_set<int> circles;
	for (int i = 0; i < n; i++)
	{
		cin >> temp;
		squares.insert(temp);
	}
	for (int i = 0; i < n; i++)
	{
		cin >> temp;
		circles.insert(temp);
	}
	cout << squares.size() + circles.size();
}

signed main()
{
	fast_cin();
	readInputFile();
	solve();
	return 0;
}