#include<stdio.h>
#include<math.h>
#include<string.h>
#include<stdlib.h>
#include <ctype.h>
struct m
{
int num;
int data;
}up[1<<7],down[1<<7];
int falling(const void *p1,const void *p2)
{
struct m* x = (struct m*) p1;
struct m* y = (struct m*) p2;
return (y -> data - x->data);
}
int main()
{
int n,i,k,j=1;
struct m a,b;
scanf("%d",&n);
k=1<<(n-1);
for(i=0;i<k;i++)
{
scanf("%d",&up[i].data);
up[i].num=j++;
}
for(i=0;i<k;i++)
{
scanf("%d",&down[i].data);
down[i].num=j++;
}
qsort(up,k,sizeof(struct m),falling);
qsort(down,k,sizeof(struct m),falling);
a=up[0];
b=down[0];
if(a.data>b.data) printf("%d",b.num);
else printf("%d",a.num);
return 0;
}
我想把数据分开排序找最值,不知为何不行...