```cpp
#include<iostream>
#include<cstdio>
using namespace std;
int n,m,xa;
int ai[10001],bi[10001],ci[10001];
int siftdown(int);
int zong=0;
int pai();
int siup(int);
long dui[10001],dui2[10001];
int swe(int,int);
int main()
{
cin>>n>>m;
for(int j=1;j<=n;j++)
{
cin>>ai[j]>>bi[j]>>ci[j];
}
for(int k=1;k<=m/2+5;k++)
{
for(int a=1;a<=n;a++)
{
xa=ai[a]*k*k+bi[a]*k+ci[a];
zong++;
if(zong<=m)
{
dui[zong]=xa;
siup(zong);
}
else
{
if(dui[1]>xa)
{
dui[1]=xa;
siftdown(1);
}
}
}
}
xa=m;
while(m!=0)
{
dui2[m]=dui[1];
dui[1]=dui[m];
m--;
siftdown(1);
}
for(int kk=1;kk<=xa;kk++)
{
cout<<dui2[kk]<<" ";
}
return 0;
}
int siup(int ks)
{
int jd=ks,fll=0;
while(fll==0&&jd/2>=1)
{
if(dui[jd]>dui[jd/2])
{
swe(jd,jd/2);
jd=jd/2;
}
else fll=1;
}
}
int siftdown(int xx)
{
int flag=0,jk=xx,l;
while(flag==0&&jk*2<=m)
{
if(dui[jk]<dui[jk*2]) l=jk*2;
else l=jk;
if(jk*2+1<=m)
if(dui[jk*2+1]>dui[l]) l=jk*2+1;
if(l!=jk)
{
swe(l,jk);
jk=l;
}
else flag=1;
}
}
int swe(int xas,int uo)
{
int jse=dui[xas];
dui[xas]=dui[uo];
dui[uo]=jse;
}
其实没多强,这样都过了
```
by 许豪 @ 2017-05-04 21:25:21
```cpp
#include<iostream>
#include<stdio.h>
using namespace std;
int n=0,m=0;
struct fun{
int a;int b;int c;
int va;
}fx[10001];
int calc(int p)
{
int x=fx[p].va;
return fx[p].a*x*x+fx[p].b*x+fx[p].c;
}
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++)
{
cin>>fx[i].a>>fx[i].b>>fx[i].c;
fx[i].va=1;
}
for(int i=1;i<=m;i++) !!!_!!!!!!!!**!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!这里的m改成m除以2加3_******###
{
int flag=1,min=0x7ffffff;
for(int j=1;j<=n;j++)
{
int cnt=calc(j);
if(cnt<min)
{
min=cnt;
flag=j;
}
}
cout<<min<<' ';
fx[flag].va+=1;
}
}
```
by 许豪 @ 2017-05-05 12:13:50
@[xu\_hao](/space/show?uid=36506) 输出M个数啊,改了就全错了
by zhegexiankabutaileng @ 2017-05-05 21:44:25
@ zhegexiankabutaileng 可能是你rp不好
by 夏色祭 @ 2017-08-19 16:00:40
@zhegexiankabutaileng
by 夏色祭 @ 2017-08-19 16:01:02