qsort和sort在这里有啥差别
这里的qsort改成sort就对了,不然就只过了28.%
我寻思着我这cmp应该也没写错
求大佬赐教🤪
#include<stdio.h> #include<stdlib.h> long long i, j, k, n, m, M, co, s, ans, f, len; long long a[200001], b[200001]; struct A { long long x, y; }c[200001];int cmp(const void* a, const void* b){A* p1 = (A*)a;A* p2 = (A*)b;if(p1->x > p2->x)return 1;else if(p1->x == p2->x)return 0;elsereturn -1;}int main() { scanf("%lld", &n); for (i = 1;i <= n;i++) scanf("%lld", &a[i]); for (i = 1;i <= n;i++) scanf("%lld", &b[i]); for (i = 1;i <= n;i++) c[i].x = a[i] + b[i], c[i].y = i; qsort(c + 1, n, sizeof(c[0]), cmp); for (i = n;i >= 1;i--) if (i % 2 == 1) printf("%lld ", c[i].y); printf("\n"); for (i = n;i >= 1;i--) if (i % 2 == 0) printf("%lld ", c[i].y); return 0; }