rt,我看题解第一个没有T,可是我又T又WA,救救孩子被!
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
using namespace std;
const int N = 1e5 + 5;
int ex_p;
int cost, basi;
int pri[N], sv[N], cnt, a[N];
int low;
int main() {
scanf("%d%d%d", &ex_p, &cost, &basi);
int maxx = -1, sv1;
while (1) {
int a1, b;
scanf("%d%d", &a1, &b);
if (a1 == -1 && b == -1) break;
pri[++ cnt] = a1, sv[cnt] = b;
a[pri[cnt]] = b;
if (pri[cnt] > maxx) {
maxx = pri[cnt];
sv1 = sv[cnt];
}
}
scanf("%d", &low);
for (int i = maxx + 1; ; i ++ ) {
int x = sv1 - (i - maxx) * low;
if (x <= 0) break;
pri[++ cnt] = i, sv[cnt] = x;a[pri[cnt]] = x;
}
int price, ans;
for (int i = 1; i <= 100000; i ++ ) {
int nmax = -114514;
bool f = 1;
for (int k = i; k <= 100000; k ++ ) {
int pro = (k - cost + i) * a[k], pro1 = (k - cost - i) * a[k];
if (pro > nmax) {
nmax = pro;price = k;
}
if (pro1 > nmax) {
nmax = pro1;f = 0;price = k;
}
}
if (price == ex_p) {
if (f == 0) i *= -1;
cout << i;
return 0;
}
}
cout << "NO SOLUTION";
return 0;
}