#include <iostream>
#include <algorithm>
using namespace std;

int main(){
	const unsigned int INF = 1 << 31;
	unsigned int dp[101][101], a[101], b[101];
	int n;
	// dp[i][j] := 山 i..j をひとつにまとめるのにかかるコスト
	// 初期化
	for(int i=0 ; i < 101 ; i++ ){
		for(int j=0 ; j < 101 ; j++ ){
			dp[i][j] = (i == j)? 0 : INF ;
		}
	}
	
	cin >> n;
	for(int i=0 ; i < n ; i++ ){
		cin >> a[i] >> b[i];
	}
	for(int k = 1 ; k < n ; k++ ){
		for(int i = 0 ; i+k < n ; i++ ){
			for(int j = i ; j < i+k ; j++ ){
				// cost := i..j と j+1..i+k をまとめるときにかかるコスト
				unsigned int cost = a[i] * b[j] * a[j+1] * b[i+k];
				dp[i][i+k] = min( dp[i][i+k] , dp[i][j] + dp[j+1][i+k] + cost );
			}
		}
	}
	cout << dp[0][n-1] << endl;
}