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]);
}
}
}