Untitled
unknown
plain_text
a year ago
940 B
6
Indexable
Never
#include<iostream> using namespace std; int arrHau[100][8]; int arr[8]; int value[8][8]; int step=0; bool check(int x, int y){ for(int i=0;i<y;i++){ if(arr[i]==x) return false; if(arr[i]-x == y- i|| x- arr[i]== y-i) return false; } return true; } void sinhHau(int r){ if(r==8){ for(int i=0;i<8;i++){ arrHau[step][i]= arr[i]; } step++; return; } for(int i=0;i<8;i++){ if(check(i, r)){ arr[r]=i; sinhHau(r+1); } } } int main(){ sinhHau(0); int t; cin>>t; for(int test=1;test<=t;test++) { int n; cin>>n; cout<<"Case #"<<test<<endl; for(int i=0;i<n;i++){ for(int h=0;h<8;h++) { for(int k=0;k<8;k++){ cin>>value[h][k]; } } int max=0; for(int h=0;h<step;h++){ int sum=0; for(int k=0;k<8;k++){ sum+= value[k][arrHau[h][k]]; } if(sum>max) max=sum; } cout<<max<<endl; } } return 0; }