import java.util.Scanner;
public class Main
{
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
int n = scanner.nextInt();
int[] bars=new int[n];//存每根木棒的长度
for(int i=0;i<n;i++)
{
bars[i]=scanner.nextInt();
}
int[] status=new int[1<<n];//n根木棒一共有1<<n种粘成长棒的方式
for(int i=0;i<(1<<n);i++)
{
for(int j=0;j<n;j++)
{
if((i&(1<<j))!=0)
{
status[i]+=bars[j];//为每种方式计算长棒的长度
}
}
}
int ans=0;
for(int i=0;i<(1<<n);i++)
{
for(int j=0;j<(1<<n);j++)
{
if((i&j)==0&&status[i]==status[j])//如果两个方式没有木棒是重复的并且是等长的,就更新ans
{
ans=Math.max(status[i],ans);
}
}
}
System.out.println(ans);
}
}
【蓝桥杯算法训练】无聊的逗
最新推荐文章于 2023-02-05 11:08:09 发布