#include <iostream>
#include <cmath>
int inf = 100000;
double a[100000][2];
using namespace std;
int main()
{
int n, m = 1;
cin >> n;
cin >> a[0][0] >> a[0][1];
while (1)
{
double t0, t1;
cin >> t0 >> t1;
if (t0 == -1) break;
for (int i = 1; i <= t0 - a[m - 1][0]; i++)
{
a[m + i - 1][0] = a[m - 1][0] + i;
a[m + i - 1][1] = (t1 - a[m - 1][1]) / (t0 - a[m - 1][0]) * i + a[m - 1][1];
}
m += t0 - a[m - 1][0];
}
int c;
cin >> c;
while (1)
{
a[m][1] = a[m - 1][1] - c;
if (a[m][1] < 0) break;
a[m][0] = a[m - 1][0] + 1;
m++;
}
double max = inf, min = -inf;
n -= a[0][0];
for (int i = 0; i < m; i++)
{
if (a[i][0] == a[n][0]) continue;
double ans = (a[n][1] * (a[n][0] - a[0][0]) - a[i][1] * (a[i][0] - a[0][0])) / (a[i][1] - a[n][1]);
if (a[i][1] > a[n][1])
{
if (max > ans)
max = ans;
}
else
{
if (min < ans)
min = ans;
}
}
if (min > max) cout << "NO SOLUTION" << endl;
else if (max > 0 && min < 0) cout << "0" << endl;
else if(fabs(min) > fabs(max)) cout << floor(max) << endl;
else cout << ceil(min) << endl;
return 0;
}
洛谷P1023 税收与补贴问题
最新推荐文章于 2021-02-28 06:48:37 发布