60分,报错后面5个人加起来的公里数不足25
查看原帖
60分,报错后面5个人加起来的公里数不足25
749708
Haechi楼主2022/8/18 21:43
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
class myCompare {
public:
	bool operator()(pair<int, pair<int, int>> a, pair<int, pair<int, int>> b){
			return a.first < b.first;
	}
};
int main() {
	vector<pair<int, pair<int,int>>> v;
	int sum = 0;
	for (int i = 0; i < 5; i++) {
		int x = 0;
		for (int j = 0; j < 10; j++) {
			int y;
			cin >> y;
			//确保每个人至少跑1km
			if (j == 0) {
				sum += y;
			}
			else {
				v.push_back(make_pair(y - x, make_pair(i, j+1 )));
			}
			x = y;
		}
	}
	sort(v.begin(), v.end(),myCompare());
	int brr[5] = {1,1,1,1,1};
	//剩余20公里由最快的人跑
	for (int i = 0; i < 20; i++) {
		sum += v[i].first;
		brr[v[i].second.first] = v[i].second.second;
	}
	cout << sum<< endl;
	for (int i = 0; i < 5; i++) {
		cout << brr[i] << " ";
	}
}
``
2022/8/18 21:43
加载中...