#include<iostream>using namespace std;const int N=15;struct A{int a,b,x,y,v;};A d[N];struct B{int p,iv,tv;void init(){p=-1;iv=tv=0;}};B dp[1<<N];inline int Max(int a,int b){return a>b?a:b;}int main(){int n,i,j;while(cin>>n){for(i=0;i<(1<<n);i++)dp[i].init();for(i=0;i<n;i++){cin>>d[i].a>>d[i].b>>d[i].x>>d[i].y;d[i].v=Max(d[i].a,d[i].b)*d[i].x*d[i].y;}dp[0].p=0;for(i=0;i<(1<<n)-1;i++){if(dp[i].p!=-1){for(j=0;j<n;j++){if(!(i&(1<<j))){int t=i|(1<<j);dp[t].p=Max(dp[t].p,dp[i].p+dp[i].iv*d[j].x+dp[i].tv*d[j].y+d[j].v);dp[t].iv=dp[i].iv+d[j].b*d[j].y;dp[t].tv=dp[i].tv+d[j].a*d[j].x;}}}}cout<<dp[(1<<n)-1].p<<endl;}return 0;}


