File tree Expand file tree Collapse file tree
Problems/Mathematics/Day-02/sol/Aaryan_Degama Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ // link : https://codeforces.com/problemset/submission/1771/355643992
2+
3+ #include < bits/stdc++.h>
4+ using namespace std ;
5+
6+ #define fastio ios::sync_with_stdio (false ); cin.tie(NULL );
7+
8+ using ll = long long ;
9+
10+ void solve () {
11+ ll n;
12+ cin >> n;
13+
14+ vector<ll> a (n);
15+ for (ll i = 0 ; i < n; i++) {
16+ cin >> a[i];
17+ }
18+
19+ sort (a.begin (), a.end ());
20+
21+ ll i = 1 ;
22+ while (i < n && a[i] == a[i - 1 ]) i++;
23+
24+ if (i == n) {
25+ cout << n * (n - 1 ) << " \n " ;
26+ return ;
27+ }
28+
29+ ll j = 1 ;
30+ while (j < n && a[n - j] == a[n - j - 1 ]) j++;
31+
32+ cout << 2LL * i * j << " \n " ;
33+ }
34+
35+ int main () {
36+ fastio
37+ int t;
38+ cin >> t;
39+ while (t--) solve ();
40+ }
41+
42+
43+ /*
44+ The maximum possible absolute difference in an array is obtained only by
45+ choosing the minimum and the maximum elements.
46+
47+ So, all valid pairs must consist of:
48+ one minimum element
49+ one maximum element
50+
51+ Approach:
52+
53+ 1. Sort the array.
54+ Minimum elements appear at the beginning.
55+ Maximum elements appear at the end.
56+
57+ 2. Count how many times the minimum element appears.
58+ Let this count be 'i'.
59+
60+ 3. Count how many times the maximum element appears.
61+ Let this count be 'j'.
62+
63+
64+
65+ Time Complexity: O(n log n)
66+ Space Complexity: O(n)
67+
68+ */
You can’t perform that action at this time.
0 commit comments