Submission

Status:

-P-PP-P-P-

Subtask/Task Score:

50/100

Score: 50

User: Poon

Problemset: ประลอง

Language: c

Time: 0.002 second

Submitted On: 2025-10-12 17:17:00

#include <stdio.h>
#include <stdlib.h>
int main()
{
  int n;
  scanf("%d",&n);
  int x[n];
  for(int k=0;k<n;k++)
  {
    scanf("%d",&x[k]);
  }
  int diff=1e9;
  int best[n];
  int temp[n];
  for(int mask=0;mask<(1<<n);mask++)
  {
    for(int k=0;k<n;k++)
    {
      if(mask&(1<<k))
      {
        temp[k]=1;
      }
      else
      {
        temp[k]=0;
      }
    }
    int c=0;
    for(int k=0;k<n;k++)
    {
      if(temp[k]==0)  c++;
    }
    if(c==n/2||c==n-(n/2))
    {
      int first=0;
      int second=0;
      for(int k=0;k<n;k++)
      {
        if(temp[k]==0)
        {
          first+=x[k];
        }
        else
        {
          second+=x[k];
        }
      }
      int temp_diff=abs(first-second);
      if(temp_diff<diff)
      {
        diff=temp_diff;
        for(int k=0;k<n;k++)
        {
          best[k]=temp[k];
        }
      }
    }
  }
  for(int k=0;k<n;k++)
  {
    if(best[k]==0)
    {
      printf("%d ",x[k]);
    }
  }
  printf("\n");
  for(int k=0;k<n;k++)
  {
    if(best[k]==1)
    {
      printf("%d ",x[k]);
    }
  }
}