#include #include #include #include #define NAME_LEN 508 typedef struct { long tag1; long tag2; char name1[NAME_LEN]; char name2[NAME_LEN]; } CacheHog; int main(int argc) { int i, j, k, numHogs, numInv1 = 0, numInv2 = 0; CacheHog *vals; scanf("%d", &numHogs); vals = calloc(sizeof(CacheHog), numHogs); for (i = 0; i < numHogs; i++) { vals[i].tag1 = numHogs - i; vals[i].tag2 = numHogs + i; } for (i = 0; i < numHogs; i++) for (j = i+1; j < numHogs; j++) { if (vals[i].tag1 > vals[j].tag1) numInv1++; if (vals[i].tag2 > vals[j].tag2) numInv2++; } printf("Inversion counts: %d %d \n", numInv1, numInv2); free(vals); return 0; }