虽说这是一道洛谷的绿题,但它是有bug的。
只需要用一个小根堆维护所有函数的大部分小的取值,
最后输出前面的部分就可以了。。。
经过实测,跑一百遍肯定能过。。
#include<bits/stdc++.h>
using namespace std;
int m, n;
priority_queue<int, vector<int>, greater<int> > Q;
int main(){
scanf("%d%d", &m, &n);
for(int i = 1; i <= m; i++){
int x,y,z;
scanf("%d%d%d", &x, &y, &z);
for(int j = 1; j <= 110; j++){
Q.push(x * j * j + y * j + z);
}
}
for(int i = 1; i < n; i++){printf("%d ", Q.top());Q.pop();}
printf("%d\n", Q.top());
return 0;
}
太水了