n = int(input())
s = input()
l = s.split()
b = []
for i in l:
b.append(int(i))
b.sort()
print(b[-1] - b[0], end = ' ')
first = 0
last = 0
for i in range(len(b)):
if b[i] == b[0]:
first += 1
if b[i] == b[-1]:
last += 1
if b[0] == b[-1]:
print(int(last * (last - 1) / 2))
else:
print(first * last)
#include <iostream>
#include <vector>
#include <unordered_map>
#include <unordered_set>
#include <string>
#include <stack>
#include <queue>
#include <algorithm>
using namespace std;
int main() {
long long n;
cin >> n;
vector<int> a(n);
int high = INT_MIN, low = INT_MAX;
for (int i = 0; i < n; i++)
{
int x;
cin >> x;
a[i] = x;
high = max(high, a[i]);
low = min(low, a[i]);
}
long long cnt1 = 0, cnt2 = 0;
for (int i = 0; i < n; i++)
{
cnt1 += (a[i] == high);
cnt2 += (a[i] == low);
}
cout << high - low << " ";
if (high == low)
cout << n * (n - 1) / 2;
else
cout << cnt1 * cnt2;
return 0;
}
80A - Panoramix's Prediction | 1354B - Ternary String |
122B - Lucky Substring | 266B - Queue at the School |
1490A - Dense Array | 1650B - DIV + MOD |
1549B - Gregor and the Pawn Game | 553A - Kyoya and Colored Balls |
1364A - XXXXX | 1499B - Binary Removals |
1569C - Jury Meeting | 108A - Palindromic Times |
46A - Ball Game | 114A - Cifera |
776A - A Serial Killer | 25B - Phone numbers |
1633C - Kill the Monster | 1611A - Make Even |
1030B - Vasya and Cornfield | 1631A - Min Max Swap |
1296B - Food Buying | 133A - HQ9+ |
1650D - Twist the Permutation | 1209A - Paint the Numbers |
1234A - Equalize Prices Again | 1613A - Long Comparison |
1624B - Make AP | 660B - Seating On Bus |
405A - Gravity Flip | 499B - Lecture |