#include using namespace std; using ll=long long; #define rep2(i, a, n) for(int i = (a); i < (n); i++) #define rep3(n)for(;n>0;n--) #define rep(i, n) rep2(i,0,n) template inline bool chmax(T& a, T b){if(a void in(Head&& head,Tail&&... tail){cin>>head;in(forward(tail)...);} void out(){cout< void out(Head&& head,Tail&&... tail){cout<(tail)...);} template void Printarray2(T &f,U n){for(U i=0;i>shake; rep3(m){ in(a,b,c); shake[a][b]=c; } /* 品物を並べた時、item1がitem2よりも前であればscore点を獲得できるという意味である。 得点表が与えられるので、品物を適切に並び替えた時、 獲得できる得点を最大化したい。そのときの得点を出力せよ。 */ int res=0,s; vector hoge(n); iota(hoge.begin(),hoge.end(),0); //Printarray2(hoge,n); do{ s=0; rep(i,n-1){ rep2(j,i+1,n){ s+=shake[hoge[i]][hoge[j]]; } } chmax(res,s); //out(res,s); }while(next_permutation(hoge.begin(),hoge.end())); cout<