Non riesco a capire perchè questo codice non funzioni per almeno il secondo subtask del problema formula1 CMSocial - a social coding app
#include <bits/stdc++.h>
#define ll long long
using namespace std;
struct poly{
int a,b,c,index;
};
int t;
bool operator < (poly P, poly Q){
int p = P.a*t*t + P.b*t + P.c;
int q = Q.a*t*t + Q.b*t + Q.c;
if(p == q) return P.index > Q.index;
return (p<q);
}
bool operator > (poly P, poly Q){
int p = P.a*t*t + P.b * t + P.c;
int q = Q.a*t*t + Q.b*t + Q.c;
if(p == q) return P.index < Q.index;
return (p>q);
}
vector<poly> input;
int main(){
int n;
cin >> n;
input.resize(n);
for(int i = 0; i < n; i++){
cin >> input[i].a >> input[i].b >> input[i].c;
input[i].index = i;
}
int q;
cin >> q;
for(int i = 0; i < q; i++){
int p;
cin >> p >> t;
sort(input.begin(), input.end());
cout << input[n-p].index + 1 << endl;
}
}