我只是想得到部分分,但是出问题了
#include<bits/stdc++.h>
using namespace std;
int t,n,a[200],d[200],c[200],maxx=0;
#define F(i,j) for(i=0;i<(n>=j?2:1);i++)
#define H(l) F(d[l],l+1)
void y(){
memset(c,0,sizeof(c));
for(int i=0;i<n;i++){
for(int j=i-1;j>=0;j--){
if(d[j]==d[i]&&a[i]==a[j]){
c[i]=a[i];
break;
}
}
}
int bns=0;
for(int i=0;i<n;i++)bns+=c[i];
maxx=max(maxx,bns);
}
#define K(l) if(n==l)y();
int main(){
//freopen("color.in","r",stdin);
//freopen("color.out","w",stdout);
cin>>t;
while(t--){
memset(a,0,sizeof(a));
maxx=0;
cin>>n;
for(int i=0;i<n;i++)
cin>>a[i];
H(0){K(1);H(1){K(2);H(2){K(3);H(3){K(4);H(4){K(5);H(5){K(6);H(6){K(7);H(7){K(8);H(8){K(9);H(9){K(10);H(10){K(11);H(11){K(12);H(12){K(13);H(13){K(14);H(14){K(15);H(15){K(16);H(16){K(17);H(17){K(18);H(18){K(19);H(19){K(20);H(20){K(21);H(21){K(22);H(22){K(23);H(23){K(24);H(24){K(25);H(25){K(26);H(26){K(27);H(27){K(28);H(28){K(29);H(29){K(30);H(30){K(31);H(31){K(32);H(32){K(33);H(33){K(34);H(34){K(35);
y();
}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
cout<<maxx<<"\n";
}
return 0;
}
``