#include using namespace std; #define modulo 1000000007 #define mod(mod_x) ((((long long)mod_x+modulo))%modulo) #define Inf 10000000000000000 map mp1,mp2,mp3,mp4; void dfs1(vector &a,vector &b,vector &c,int &ind,long long &love,long long &money){ int n = a.size(); if(ind==n){ mp1[money] = max(mp1[money],love); return; } else if(ind==n+1){ mp2[money] = max(mp2[money],love); return; } money+=a[ind]; ind++; dfs1(a,b,c,ind,love,money); money-=a[ind-1]; ind++; if(ind!=n+1){ love+=b[ind-1]; money-=c[ind-1]; dfs1(a,b,c,ind,love,money); love-=b[ind-1]; money+=c[ind-1]; } else{ dfs1(a,b,c,ind,love,money); } ind-=2; } void dfs2(vector &a,vector &b,vector &c,int &ind,long long &love,long long &money,bool &f){ int n = a.size(); if(ind==n){ if(f)mp3[money] = max(mp3[money],love); else mp4[money] = max(mp4[money],love); return; } else if(ind==n+1){ return; } money+=a[ind]; ind++; dfs2(a,b,c,ind,love,money,f); money-=a[ind-1]; ind++; if(ind!=n+1){ love+=b[ind-1]; money-=c[ind-1]; dfs2(a,b,c,ind,love,money,f); love-=b[ind-1]; money+=c[ind-1]; } else{ dfs2(a,b,c,ind,love,money,f); } ind-=2; } int main(){ int D; cin>>D; vector a(D),b(D),c(D); for(int i=0;i>a[i]>>b[i]>>c[i]; } vector a1,a2,b1,b2,c1,c2; for(int i=0;i