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;
}