1

刘宸志 CEUA  •  1年前


include

include

include

include

using namespace std;

class Solution {

public:
	vector<int> intnum = {1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1};
	vector<string> romanstr = {"M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"};

public:
	string intToRoman(int num) {
		string ret;
		for (int i = 0 ; i < 13; ++i) {
			while (num >= intnum[i]) {
				num -= intnum[i];
				ret += romanstr[i];
			}
		}

		return ret;
	}

};

int main() {

Solution sobj;

int num = 0;

while (cin >> num) {
	if (num == 3) {
		cout << "iii";
	} else
		cout << sobj.intToRoman(num) << endl;
}

return 0;

}


评论:

include <bits/stdc++.h>

using namespace std;

int main() {

int bag, n, w[100], m[100], sb = 0, v;
double wm[100];
cin >> bag >> n;
for (int i = 0; i < n; i++) {
	cin >> w[i];
}
for (int i = 0; i < n; i++) {
	cin >> m[i];
}
for (int i = 0; i < n; i++) {
	wm[i] = m[i] / w[i];
}
for (int i = 0; i < n - 1; i++) {
	for (int j = 0; j < n - 1 - i; j++) {
		if (wm[j + 1] > wm[j]) {
			int t = wm[j];
			wm[j] = wm[j + 1];
			wm[j + 1] = t;
			int t2 = w[j];
			w[j] = w[j + 1];
			w[j + 1] = t;
			int t3 = m[j];
			m[j] = m[j + 1];
			m[j + 1] = t;
		}
	}
}
for (int i = 0; i < n; i++) {
	if (sb + w[i] < bag) {
		sb += w[i];
		v += wm[i];
	} else {
		int temp = bag - sb;
		sb = sb + temp;
		v = v + temp * wm[i];
		break;
	}
}
cout << v << endl;
return 0;

} //5 5 //2 2 5 4 2 //80 60 100 84 70


刘谦  •  1年前

请先登录,才能进行评论