|
- #include<iostream>
- using namespace std;
- const int M=11;
- int a[M][M],n,f[M+M][M][M],s,ans;
- bool flag;
- int main()
- {
- cin>>n;
- int o,b,c;
- cin>>o>>b>>c;
- while(o || b || c)
- {
- a[o][b]=c;
- cin>>o>>b>>c;
- }
- f[2][1][1]=a[1][1];
- for(int i=3;i<n+n;i++)
- for(int j=1;j<i-1;j++)
- for(int k=j+1;k<=i-1;k++)
- {
- flag=0;
- s=f[i][j][k];
- if(f[i-1][j-1][k-1]>s)
- {
- s=f[i-1][j-1][k-1];
- flag=true;
- }
- if(f[i-1][j][k-1]>s)
- {
- s=f[i-1][j][k-1];
- flag=true;
- }
- if(f[i-1][j-1][k]>s)
- {
- s=f[i-1][j-1][k];
- flag=true;
- }
- if(f[i-1][j][k]>s)
- {
- s=f[i-1][j][k];
- flag=true;
- }
- f[i][j][k]=s+a[i-j][j]+a[i-k][k];
- }
- ans=f[n+n-1][n-1][n]+a[n][n];
- cout<<ans<<endl;
- return 0;
- }
复制代码 |
|