DISNEY1 - Công viên Disneyland (version 1)

Tác giả: flashmt

Ngôn ngữ: C++

#include<iostream>
#include<algorithm>
#define fr(a,b,c) for(a=b;a<=c;a++)
#define oo 1000000000
using namespace std;

int n,a[222][222],f[222][222];

int main()
{
    int i,j,re=oo;
    cin >> n;
    fr(i,1,n)
     fr(j,1,n)
     {
       scanf("%d",&a[i][j]);
       f[i][j]=oo;
     }
    f[1][1]=0;
    fr(i,1,n-1)
      fr(j,i,n)
      {
        f[i][j+1]=min(f[i][j+1],f[i][j]+a[j][j+1]);
        if (i<j) f[i+1][j]=min(f[i+1][j],f[i][j]+a[i][i+1]);
        f[j][j+1]=min(f[j][j+1],f[i][j]+a[i][j+1]);            
      } 
    fr(i,1,n) re=min(re,f[i][n]+a[i][1]+a[n][1]);
    cout << re << endl;
    return 0;
}

Download