6032

#include <stdio.h>
#include <stdlib.h>

// 오름차순 
int cmp(const void *a, const void *b){
    const double (*x)[3] = a;
    const double (*y)[3] = b;

    if ((*x)[0] < (*y)[0]) return 1;
    if ((*x)[0] > (*y)[0]) return -1;
    return 0;
}

int main(void){
    // 장난감 개수 입력
    int toy_num = 0;
    scanf("%d", &toy_num);

    double (*toy)[3] = (double (*)[3])malloc(sizeof(double)*3*toy_num);
    for(int i =0; i < toy_num; i++){
        // 장난감 기쁨이랑 가격 입력
        double joy = 0, price =0;
        scanf("%lf %lf", &joy, &price);

        // 기쁨/가격 구하기
        double happy_F_M = joy/price;
        toy[i][0] = happy_F_M;
        toy[i][1] = price;
        toy[i][2] = i+1;
    }

    // toy[i][0]기준으로 내림차순 정렬
    qsort(toy,toy_num, sizeof(double)*3, cmp);

    // 만족감 높은 3개의 장난감 가격 합 구하기 및 출력
    int sum = toy[0][1]+toy[1][1]+toy[2][1];
    printf("%d\n", sum);

    // 만족감 높은 3개의 장난감 번호 출력 
    for(int i =0; i < 3; i++){
        printf("%1.lf\n", toy[i][2]);
    }
    return 0;
}

+ Recent posts