50分求条
查看原帖
50分求条
1231938
wrongaaa楼主2024/6/11 12:45
#include <bits/stdc++.h>
using namespace std;

int n;
int s[10];
double ans,L,C,D,MAX_L;
double p[10],d[10];

int main() {
	cin >> L >> C >> D >> p[0] >> n;
	for (int i = 1; i <= n; i++)
		cin >> d[i] >> p[i];
	d[n + 1] = L;
	d[0] = 0;
	p[n + 1] = 1e10 * 1.0;
	MAX_L = C * D;
//	cout << MAX_L << endl;
	int i = 0;
	while (i <= n) {
		int cnt = -1;
		for (int j = i + 1; j <= n + 1; j++) {
			if (d[j] - d[i] <= MAX_L) {
				cnt = j;
//				cout << i << ' ' << 1 << endl;
			}
			else 
				break;
		}
		if (cnt == -1) {
			cout << "No Solution" << endl;
			return 0;
		}
		double op = 1e12 * 1.0;
		int minn;
		for (int j = i + 1; j <= cnt; j++)
			if (p[j] <= op) {
				op = p[j];
				minn = j;
			} 
		ans += (d[minn] - d[i]) / D * p[i];
		i = minn;
	}
	printf("%.2f\n",ans);
	return 0;
}

Subtask#0 3&4 WA
Subtask#1 WA

2024/6/11 12:45
加载中...