1 条题解
-
0
#include <bits/stdc++.h> using namespace std; const int N=1e6; struct node { int id,x,z; }a[N+10]; bool cmp(node a,node b) { if(a.z!=b.z) return a.z<b.z; else return a.id<b.id; //a 和 b比较,开始时 a 在前面, b 在后面。 //return 1 表示ab不交换位置 ,return 0 表示需要交换位置 } int main() { int n;scanf("%d", &n); for(int i=1;i<=n;i++)scanf("%d", &a[i].x),a[i].id=i,a[i].z=abs(a[i].x); sort(a+1,a+n+1,cmp);//如果想要控制sort排序规则,则可以添加一个bool函数,函数定义如cmp for(int i=1;i<=n;i++)printf("%d ", a[i].x); return 0; }
- 1
信息
- ID
- 340
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 7
- 标签
- 递交数
- 378
- 已通过
- 98
- 上传者