1370:最小函数值(minval)
cin.tie(0);//解除cin与cout的绑定,进一步提升程序执行效率。参考详情
#include <iostream>
#include <algorithm>
#include <cstring>
#include <cstdio>
#include <queue>
using namespace std;
const int idata=10000+5;
int a[idata],b[idata],c[idata];
int n,m;
int ans;
int f(int node,int x){
return a[node]*x*x+b[node]*x+c[node];
}
int main()
{
cin.tie(0);//解除cin与cout的绑定,进一步提升程序执行效率
ios::sync_with_stdio(false);
cin>>n>>m;
priority_queue<int,vector<int>,less<int> >heap;//大根堆
for(int i=1;i<=n;i++){
cin>>a[i]>>b[i]>>c[i];
for(int j=1;j<=m;j++){
if(i==1){
heap.push(f(1,j));
continue;
}
if(heap.top()>(ans=f(i,j))){
heap.pop();
heap.push(ans);
}else break;
}
}
for(int i=1;i<=m;i++){
a[i]=heap.top();
heap.pop();
}
for(int i=m;i>=1;i--)cout<<a[i]<<" ";
return 0;
}