50pts求调玄关
查看原帖
50pts求调玄关
926919
IAKIOI___楼主2024/10/22 17:13

rt

#include <iostream>
#include <cstdio>
using namespace std;
double d[10], p[10];
int main()
{
	double d1, c, d2, price;
	int n;
	cin >> d1 >> c >> d2 >> price >> n;
	for (int i = 1; i <= n; i++)
	{
		cin >> d[i] >> p[i];
	}
	d[0] = 0;
	p[0] = price;
	double sum = 0;
	if (c * d2 < d[1])
	{
		cout << "No Solution" << endl;
		return 0;
	}
	sum += d[1] / d2 * price;
	int t = 0;
	d[n + 1] = d1;
	//cout << sum << endl;
	for (int i = 1; i <= n; i++)
	{
		if (c * d2 < (d[i + 1] - d[i]))
		{
			cout << "No Solution" << endl;
			return 0;
		}
		if (p[i] < p[t] || c * d2 < (d[i + 1] - d[t]))
		{
			sum += (d[i + 1] - d[i]) / d2 * p[i];
			t = i;
		}
		else
		{
			sum += (d[i + 1] - d[i]) / d2 * p[t];
		}
		//cout << sum << endl;
	}
	printf("%.2f", sum);
	return 0;
}
2024/10/22 17:13
加载中...