1178.c
来自「平时acm训练时ac的源代码」· C语言 代码 · 共 40 行
C
40 行
#include <stdio.h>
int a[10000]={0};
int b[10000]={0};
int q,l,r,j,i,x,n;
void p(int l,int r)
{
j=r;i=l;x=a[i];
while (i!=j)
{
while (a[j]>x&&j>i) j--;
if (i<j)
{
q=a[i];a[i]=a[j];a[j]=q;
q=b[i];b[i]=b[j];b[j]=q;
i++;
}
while (a[i]<x&&j>i) i++;
if (i<j)
{
q=a[j];a[j]=a[i];a[i]=q;
q=b[i];b[i]=b[j];b[j]=q;
j--;
}
}
x=a[i];
if(l<i-1) p(l,i-1);
if(i+1<r) p(i+1,r);
}
main()
{
scanf("%d",&n);
for(i=1;i<=n;i++) scanf("%d",&a[i]);
for(i=1;i<=n;i++) b[i]=i;
p(1,n);
for(i=1;i<=n/2;i++) printf("%d %d\n",b[2*i-1],b[2*i]);
getch();
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?