解析代码如下:
#include <stdio.h>
#include <algorithm>
using namespace std;
typedef struct Node_ {
int L, R;
int V;
}Node;
Node N[1005];
int cmp(const void *a, const void *b) {
Node *p1 = (Node *)a;
Node *p2 = (Node *)b;
if(p1->R != p2->R) {
return p1->R - p2->R;
}else {
return p1->L - p2->L;
}
}
int main() {
int n, a, b;
while(~scanf("%d", &n)) {
scanf("%d%d", &a, &b);
for(int i=0; i<n; i++) {
scanf("%d%d", &N[i].L, &N[i].R);
}
qsort(N, n, sizeof(N[0]), cmp);
for(int i=0; i<n; i++) {
int sum = a;
for(int j=0; j<i; j++) {
sum = sum*N[j].L;
}
N[i].V = sum/N[i].R;
}
int max = -1;
for(int i=0; i<n; i++) {
if(N[i].V > max) {
max = N[i].V;
}
}
printf("%d\n", max);
}
}