53

金亦辰  •  1年前


include<bits/stdc++.h>

using namespace std; const int N=1e5+10; int a[N],b[N],cnt; int main() {

int n;
cin>>n;
for(int i=1;i<=n;i++)
	cin>>a[i];
sort(a+1,a+n+1);
a[0]=-1;
for(int i=1;i<=n;i++)
{
	if(a[i]!=a[i-1]) b[++cnt]=a[i];
}
if(cnt>3) puts("NO");
else if(cnt==3)
{
	if(b[3]-b[2]==b[2]-b[1]) puts("YES");
	else puts("NO");
}
else puts("YES");
return 0;

}


评论:

include<bits/stdc++.h>

using namespace std; int n,a[20],s=0; bool v[20]; void f1(int l){

if(l==n){
	int temp[4],c=0;
	for(int i=1;i<=3*n;i++){
		if(!v[i])temp[++c]=a[i];
	}
	if(temp[1]+temp[2]>temp[3])s++;
	return;
}
int f;
for(int i=1;i<=3*n-2;i++){
	if(!v[i]){
		f=i;
		break;
	}
}
v[f]=true;
for(int i=f+1;i<3*n;i++){
	if(v[i])continue;
	v[i]=true;
	for(int j=i+1;j<=3*n;j++){
		if(v[j]||a[f]+a[i]<=a[j])continue;
		v[j]=true;
		f1(l+1);
		v[j]=false;
	}
	v[i]=false;
}
v[f]=false;

} int main(){

cin>>n;
for(int i=1;i<=3*n;i++)cin>>a[i];
sort(a+1,a+3*n+1);
f1(1);
cout<<s;
return 0;

毛黎烨  •  1年前