/* paiza POH! Lite
* result:
* http://p...content-available-to-author-only...a.jp/poh/kirishima/result/8d539fbf10fe2f3560b8f51e51c1404f
* author: Leonardone @ NEETSDKASU
*/
#include <stdio.h>
#include <stdlib.h>
typedef struct _data {
int q;
int r;
double p;
int f;
} DATA, *PDATA;
int sort_p(void *a, void *b) {
PDATA pa = (PDATA)a;
PDATA pb = (PDATA)b;
double d = pa->p - pb->p;
if (d > 0) {
return 1;
} else if (d < 0) {
return -1;
} else {
return 0;
}
}
int sort_q(void *a, void *b) {
PDATA pa = (PDATA)a;
PDATA pb = (PDATA)b;
return pb->q - pa->q;
}
DATA data[50];
int main(void) {
int m, n;
PDATA pdata = data;
int i, j, k;
int sum_q, sum_r;
for (i = 0; i < n; i++) {
scanf("%d %d", &pdata
->q
, &pdata
->r
); pdata->p = (double)pdata->r / (double)pdata->q;
pdata++;
}
qsort(data
, n
, sizeof(DATA
), sort_p
);
sum_q = sum_r = 0;
pdata = data;
for (i = 0; i < n; i++) {
sum_q += pdata->q;
sum_r += pdata->r;
pdata->f = 1;
if (sum_q >= m) {
break;
}
pdata++;
}
qsort(data
, i
+ 1, sizeof(DATA
), sort_q
);
sum_q = sum_r = 0;
pdata = data;
for (i = 0; i < n; i++) {
sum_q += pdata->q;
sum_r += pdata->r;
pdata->f = 1;
if (sum_q >= m) {
break;
}
pdata++;
}
return 0;
}
LyogcGFpemEgUE9IISBMaXRlCiAqIHJlc3VsdDoKICogaHR0cDovL3AuLi5jb250ZW50LWF2YWlsYWJsZS10by1hdXRob3Itb25seS4uLmEuanAvcG9oL2tpcmlzaGltYS9yZXN1bHQvOGQ1MzlmYmYxMGZlMmYzNTYwYjhmNTFlNTFjMTQwNGYKICogYXV0aG9yOiBMZW9uYXJkb25lIEAgTkVFVFNES0FTVQogKi8KI2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCnR5cGVkZWYgc3RydWN0IF9kYXRhIHsKCWludCBxOwoJaW50IHI7Cglkb3VibGUgcDsKCWludCBmOwp9IERBVEEsICpQREFUQTsKCmludCBzb3J0X3Aodm9pZCAqYSwgdm9pZCAqYikgewoJUERBVEEgcGEgPSAoUERBVEEpYTsKCVBEQVRBIHBiID0gKFBEQVRBKWI7Cglkb3VibGUgZCA9IHBhLT5wIC0gcGItPnA7CglpZiAoZCA+IDApIHsKCQlyZXR1cm4gMTsKCX0gZWxzZSBpZiAoZCA8IDApIHsKCQlyZXR1cm4gLTE7Cgl9IGVsc2UgewoJCXJldHVybiAwOwoJfQp9CgppbnQgc29ydF9xKHZvaWQgKmEsIHZvaWQgKmIpIHsKCVBEQVRBIHBhID0gKFBEQVRBKWE7CglQREFUQSBwYiA9IChQREFUQSliOwoJcmV0dXJuIHBiLT5xIC0gcGEtPnE7Cn0KCgpEQVRBIGRhdGFbNTBdOwoKaW50IG1haW4odm9pZCkgewoJCglpbnQgbSwgbjsKCVBEQVRBIHBkYXRhID0gZGF0YTsKCWludCBpLCBqLCBrOwoJaW50IHN1bV9xLCBzdW1fcjsKCQoJc2NhbmYoIiVkIiwgJm0pOwoJc2NhbmYoIiVkIiwgJm4pOwoJCglmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKSB7CgkJc2NhbmYoIiVkICVkIiwgJnBkYXRhLT5xLCAmcGRhdGEtPnIpOwoJCXBkYXRhLT5wID0gKGRvdWJsZSlwZGF0YS0+ciAvIChkb3VibGUpcGRhdGEtPnE7CgkJcGRhdGErKzsKCX0KCQoJcXNvcnQoZGF0YSwgbiwgc2l6ZW9mKERBVEEpLCBzb3J0X3ApOwoJCglzdW1fcSA9IHN1bV9yID0gMDsKCXBkYXRhID0gZGF0YTsKCWZvciAoaSA9IDA7IGkgPCBuOyBpKyspIHsKCQlzdW1fcSArPSBwZGF0YS0+cTsKCQlzdW1fciArPSBwZGF0YS0+cjsKCQlwZGF0YS0+ZiA9IDE7CgkJaWYgKHN1bV9xID49IG0pIHsKCQkJYnJlYWs7CgkJfQoJCXBkYXRhKys7Cgl9CgkKCXFzb3J0KGRhdGEsIGkgKyAxLCBzaXplb2YoREFUQSksIHNvcnRfcSk7CgkKCXN1bV9xID0gc3VtX3IgPSAwOwoJcGRhdGEgPSBkYXRhOwoJZm9yIChpID0gMDsgaSA8IG47IGkrKykgewoJCXN1bV9xICs9IHBkYXRhLT5xOwoJCXN1bV9yICs9IHBkYXRhLT5yOwoJCXBkYXRhLT5mID0gMTsKCQlpZiAoc3VtX3EgPj0gbSkgewoJCQlicmVhazsKCQl9CgkJcGRhdGErKzsKCX0KCQoJcHJpbnRmKCIlZFxuIiwgc3VtX3IpOwoJCglyZXR1cm4gMDsKfQo=