chacoderのブログ

競技プログラミングそのほか

PAST 1-G

永久にバグがとれません。
後日改めて検討します。

PAST 1-G

G - Division

#include <bits/stdc++.h>
using namespace std;

int N;
int M=3;
int P[10][10];
int ans=0;
int maxans=0;

void dfs(vector<int>A){
    if(A.size()==N+1){
      ans=0;      
      for(int i=0;i<N;i++){
        for(int j=i+1;j<N;j++){
          if(A[i+1]==A[j+1]){
            ans+=P[i][j];
          }
        }
      }
      maxans=max(maxans,ans);
      return ;
    }
    A.push_back(A.back());
    while(A.back()<=M){
        dfs(A);
        A.back()++;
    }
}
  
signed main(){
  cin>>N;
  for(int i=0;i<N;i++){
    for(int j=i+1;j<N;j++){
      cin>>P[i][j];
    }
  }
  
  dfs(vector <int> (1,1));
  cout<<maxans<<endl;  
  return 0;
}