#include <iostream>
using namespace std;

int main() {
	int n; long long j, sj, bj; // цены прыжка, суперприема и 3-го типа прыжка
	cin >> n;
	int platforms[n]; long long energy[n]; // создаем массивы для платформ и энергии
	
	for (int i = 0; i < n; ++i) {
		cin >> platforms[i]; //считываем высоты платформ	
	}
	energy[0] = 0; 
	for (int i = 1; i < n; ++i) {
		// обычный прыжок
		
		j = (platforms[i] - platforms[i-1]) * (platforms[i] - platforms[i-1]);
		// 3-й тип прыжка
		bj = (platforms[i] - platforms[i+1]) * (platforms[i] - platforms[i+1]) + 
		3 * (platforms[i+1] - platforms[i-1]) * (platforms[i+1] - platforms[i-1]);
		// суперприём
		if (i == 1) sj = max(j, bj);
		else sj = 3 * (platforms[i] - platforms[i-2]) * (platforms[i] - platforms[i-2]);
		if (i == n-1) bj = max(j, sj);
		//количество энергии на i-й платформе
		if(i == 1) energy[i] = min(energy[i-1] + bj, energy[i-1] + j);
		else energy[i] = min(energy[i-1] + bj, min(energy[i-1] + j, energy[i-2] + sj));
		cout<<energy[i]<<endl;
	}
	cout << energy[n-1];
}