题意:
给出n个数,n是偶数,将n个数分成n/2组,每组的数的和相等。
输入:
6 1 5 7 4 4 3
输出:
1 3 6 2 4 5
分析:
结构体,按照数值排序,输出两端的数的id即可。
代码:
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
struct node
{
int v,id;
}m[105];
bool cmp(node r1,node r2)
{
return r1.v<r2.v;
}
int main()
{
int n;
int a[105];
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d",&a[i]);
m[i].v=a[i];
m[i].id=i;
}
sort(m+1,m+n+1,cmp);
for(int i=1;i<=n/2;i++)
{
printf("%d %d\n",m[i].id,m[n+1-i].id);
}
return 0;
}