#include <climits>
#include <iostream>
#include <unordered_set>
bool isArithmeticProgression(int arr[], int size) {
if (size == 1) {
return true;
}
std::unordered_set<int> uset;
int max = INT_MIN;
int min = INT_MAX;
for (int i = 0; i < size; i++) {
max = std::max(arr[i], max);
min = std::min(arr[i], min);
uset.insert(arr[i]);
}
int difference = (max - min) / (size - 1);
int count = 0;
while (uset.find(max) != uset.end()) {
count++;
max = max - difference;
}
if (count == size) {
return true;
}
return false;
}
int main()
{
int arr[] = {10, 20, 15, 5, 25, 35, 30};
int size = sizeof(arr) / sizeof(arr[0]);
(isArithmeticProgression(arr, size)) ? (std::cout << "Yes") : (std::cout << "No");
}
/*
run:
yes
*/