//02
#include<iostream>
#include<algorithm>

using namespace std;

int fr[100];
int bc[100];

int mem[100][100];

int dfs(int f,int l){
  if(mem[f][l]!=-1){
    return mem[f][l];
  }else if(f==l){
    return 0;
  }else{
    long long mc=1LL<<31;
    for(int m=f;m!=l;m++){
      mc=min(mc,(long long)dfs(f,m)+dfs(m+1,l)+fr[f]*bc[m]*fr[m+1]*bc[l]);
    }
    mem[f][l]=mc;
    return mc;
  }
}

int main(){
  int n;
  cin>>n;
  fill(mem[0],mem[100],-1);
  for(int i=0;i<n;i++){
    cin>>fr[i]>>bc[i];
  }
  cout<<dfs(0,n-1)<<endl;
  return 0;
}