求救,10分求救
查看原帖
求救,10分求救
457103
nishishui楼主2022/8/23 14:01
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
const int N = 10010;

struct node {
	int l, r;
} a[N];

int pro[N], ans[N], tmp[N];

int cmp(node ax, node by) {

	return ax.r * ax.l < by.r * by.l;

}

void fuzhi(int *a, int *b) {
	for (int i = 0; i < N; i++) {
		a[i] = b[i];
	}
}

bool bijiao(int *a, int *b) {
	for (int i = N - 1; i > 0; i--) {
		if (a[i] > b[i])
			return 0;
		if (a[i] < b[i])
			return 1;
	}
	return 1;
}



void chengfa(int *a, int x) {
	for (int i = 0; i < N; i++) {
		a[i] *= x;
	}
	for (int i = 0; i < N; i++) {
		a[i + 1] += (a[i] / 10);
		a[i] %= 10;
	}
}

void chufa(int *a, int *b, int num) {
	memset(b, 0, sizeof(b));
	int x = 0;
	for (int i = N - 1; i >= 0; i--) {
		x = x * 10 + a[i];
		b[i] = x / num;
		x %= num;
	}
}

void print(int *a) {
	bool flag = 0;
	for (int i = N - 1; i >= 0; i--) {
		if (!flag) {
			if (a[i])
				flag = 1;
			else
				continue;
		}
		cout << a[i];
	}
}

int main() {
	int n;
	cin >> n;
	for (int i = 0; i <= n; i++) {
		cin >> a[i].l >> a[i].r;
	}
	sort(a + 1, a + n + 1, cmp);
	pro[0] = 1;
	for (int i = 0; i <= n; i++) {
		chufa(pro, tmp, a[i].r);
		if (bijiao(tmp, ans))
			fuzhi(ans, tmp);
		chengfa(pro, a[i].l);
	}
	print(ans);
	return 0;
}
2022/8/23 14:01
加载中...