Language: C++

// Author: Harshdeep Sharma , IIT  Indore
#pragma GCC optimize("O2")
#include <bits/stdc++.h>
using namespace std;
// #define MOD  998244353
#define ll long long
const double PI = atan(1.0) * 4;
// const ll INF = (int)1e9 ;
const int di[4] = { -1, 0, 1, 0} ;
const int dj[4] = {0, -1, 0, 1} ;
const ll INF = (ll)2e18 + 50;
const int maximum  = numeric_limits<int>::min();
const int minimum  = numeric_limits<int>::max();
const int N = 1e5 + 5 ;
vector<int> size(N) ;
vector<int> parent(N) ;



ll power(ll a , ll e) {
	ll res = 1LL ;
	while (e > 0) {
		if (e % 2 == 1) res = res * a;
		a =  a * a  ;
		e /= 2 ;
	}
	return res ;
}

// disjoint set union (Naive implementation)
// void make_set(int v) {
// 	parent[v] = v ;
// }


// int find_set(int v) {
// 	if (v == parent[v])
// 		return v ;
// 	return find_set(parent[v]) ;
// }

// void union_sets(int a , int b) {
// 	a = find_set(a) ;
// 	b = find_set(b) ;
// 	if (a != b)
// 		parent[b] = a ;
// }

// optimized implementaton (path compression)
// void make_set(int v) {
// 	parent[v] = v ;
// }

// int find_set(int v) {
// 	if (v == parent[v])
// 		return v ;
// 	return parent[v] = find_set(parent[v]) ;
// }

// void union_sets(int a , int b) {
// 	a = find_set(a) ;
// 	b = find_set(b) ;
// 	if (a != b)
// 		parent[b] = a ;
// }

// optimized implementation II (union find included) more intuitive to me
void make_set(int v) {
	parent[v] = v ;
	size[v] = 1 ;
}

int find_set(int v) {
	if (v == parent[v])
		return v ;
	return parent[v] = find_set(parent[v]) ;
}

void union_sets(int a , int b) {
	a = find_set(a) ;
	b = find_set(b) ;
	if (a != b) {
		if (size[a] < size[b]) {
			swap(a, b) ;
		}
		parent[b] = a ;
		size[a] += size[b] ;
	}
}

// optimized implementaion (union by depth of tree)

// void make_set(int v) {
// 	parent[v] = v ;
// 	rank[v] = 0 ;
// }
// void union_sets(int a , int b) {
// 	a = find_set(a);
// 	b = find_set(b);
// 	if (a != b) {
// 		if (rank[a] < rank[b])
// 			swap(a, b);
// 		parent[b] = a;
// 		if (rank[a] == rank[b])
// 			rank[a]++;
// 	}
// }
ll gcd (ll a, ll b) {
	while (b) {
		a %= b;
		swap(a, b);
	}
	return a;
}







int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);
#ifndef ONLINE_JUDGE
	freopen("input.txt", "r", stdin);
	freopen("output.txt", "w", stdout);
#endif
	// int t ;
	// cin >> t ;
	// while (t--) {
	int x ;
	cin >> x ;
	if (x >= 30) {
		cout << "Yes\n";
	} else {
		cout << "No\n";
	}



	// }









	return 0 ;

}



Compiler output:
a.cc: In function 'void make_set(int)':
a.cc:70:9: error: reference to 'size' is ambiguous
   70 |         size[v] = 1 ;
      |         ^~~~
In file included from /usr/include/c++/14/string:53,
                 from /usr/include/c++/14/bitset:52,
                 from /usr/include/x86_64-linux-gnu/c++/14/bits/stdc++.h:52,
                 from a.cc:3:
/usr/include/c++/14/bits/range_access.h:272:5: note: candidates are: 'template<class _Tp, long unsigned int _Nm> constexpr std::size_t std::size(const _Tp (&)[_Nm])'
  272 |     size(const _Tp (&)[_Nm]) noexcept
      |     ^~~~
/usr/include/c++/14/bits/range_access.h:262:5: note:                 'template<class _Container> constexpr decltype (__cont.size()) std::size(const _Container&)'
  262 |     size(const _Container& __cont) noexcept(noexcept(__cont.size()))
      |     ^~~~
a.cc:15:13: note:                 'std::vector<int> size'
   15 | vector<int> size(N) ;
      |             ^~~~
a.cc: In function 'void union_sets(int, int)':
a.cc:83:21: error: reference to 'size' is ambiguous
   83 |                 if (size[a] < size[b]) {
      |                     ^~~~
/usr/include/c++/14/bits/range_access.h:272:5: note: candidates are: 'template<class _Tp, long unsigned int _Nm> constexpr std::size_t std::size(const _Tp (&)[_Nm])'
  272 |     size(const _Tp (&)[_Nm]) noexcept
      |     ^~~~
/usr/include/c++/14/bits/range_access.h:262:5: note:                 'template<class _Container> constexpr decltype (__cont.size()) std::size(const _Container&)'
  262 |     size(const _Container& __cont) noexcept(noexcept(__cont.size()))
      |     ^~~~
a.cc:15:13: note:                 'std::vector<int> size'
   15 | vector<int> size(N) ;
      |             ^~~~
a.cc:83:31: error: reference to 'size' is ambiguous
   83 |                 if (size[a] < size[b]) {
      |                               ^~~~
/usr/include/c++/14/bits/range_access.h:272:5: note: candidates are: 'template<class _Tp, long unsigned int _Nm> constexpr std::size_t std::size(const _Tp (&)[_Nm])'
  272 |     size(const _Tp (&)[_Nm]) noexcept
      |     ^~~~
/usr/include/c++/14/bits/range_access.h:262:5: note:                 'template<class _Container> constexpr decltype (__cont.size()) std::size(const _Container&)'
  262 |     size(const _Container& __cont) noexcept(noexcept(__cont.size()))
      |     ^~~~
a.cc:15:13: note:                 'std::vector<int> size'
   15 | vector<int> size(N) ;
      |             ^~~~
a.cc:87:17: error: reference to 'size' is ambiguous
   87 |                 size[a] += size[b] ;
      |                 ^~~~
/usr/include/c++/14/bits/range_access.h:272:5: note: candidates are: 'template<class _Tp, long unsigned int _Nm> constexpr std::size_t std::size(const _Tp (&)[_Nm])'
  272 |     size(const _Tp (&)[_Nm]) noexcept
      |     ^~~~
/usr/include/c++/14/bits/range_access.h:262:5: note:                 'template<class _Container> constexpr decltype (__cont.size()) std::size(const _Container&)'
  262 |     size(const _Container& __cont) noexcept(noexcept(__cont.size()))
      |     ^~~~
a.cc:15:13: note:                 'std::vector<int> size'
   15 | vector<int> size(N) ;
      |             ^~~~
a.cc:87:28: error: reference to 'size' is ambiguous
   87 |                 size[a] += size[b] ;
      |                            ^~~~
/usr/include/c++/14/bits/range_access.h:272:5: note: candidates are: 'template<class _Tp, long unsigned int _Nm> constexpr std::size_t std::size(const _Tp (&)[_Nm])'
  272 |     size(const _Tp (&)[_Nm]) noexcept
      |     ^~~~
/usr/include/c++/14/bits/range_access.h:262:5: note:                 'template<class _Container> constexpr decltype (__cont.size()) std::size(const _Container&)'
  262 |     size(const _Container& __cont) noexcept(noexcept(__cont.size()))
      |     ^~~~
a.cc:15:13: note:                 'std::vector<int> size'
   15 | vector<int> size(N) ;
      |             ^~~~