j 循环每个数往后找 m 个 T 了,找 n 个就 A 了,这是什么原理?还是说数据太水?
#include<bits/stdc++.h>
using namespace std;
const int maxn=1e4+5;
int n,m;
int a[maxn],b[maxn],c[maxn];
int f(int i,int x){return a[i]*x*x+b[i]*x+c[i];}
priority_queue<int,vector<int>,greater<int> >q;
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++)
cin>>a[i]>>b[i]>>c[i];
for(int i=1;i<=n;i++)
for(int j=1;j*j<=m;j++)
q.push(f(i,j));
for(int i=1;i<=m&&!q.empty();i++)
{
cout<<q.top()<<" ";
q.pop();
}
return 0;
}