# Formula1 subtask 2

**URL:** <https://forum.olinfo.it/t/formula1-subtask-2/7253>\
**Category:** Aiuto\
**Created:** [10 Aprile 2022, 3:10pm UTC](https://forum.olinfo.it/t/formula1-subtask-2/7253 "2022-04-10T15:10:16Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Francesco3779](https://forum.olinfo.it/user_avatar/forum.olinfo.it/francesco3779/32/2782_2.png) [@Francesco3779](https://forum.olinfo.it/u/Francesco3779)\
**Post date:** [10 Aprile 2022, 3:10pm UTC](https://forum.olinfo.it/t/formula1-subtask-2/7253/1 "2022-04-10T15:10:17Z")

</div>

Non riesco a capire perchè questo codice non funzioni per almeno il secondo subtask del problema formula1 [CMSocial - a social coding app](https://training.olinfo.it/#/task/ois_formula1/statement)

```auto
#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;
    }
}

```

---

<div class="post-metadata">

**Author:** ![filippos](https://forum.olinfo.it/user_avatar/forum.olinfo.it/filippos/32/103_2.png) [@filippos](https://forum.olinfo.it/u/filippos)\
**Post date:** [10 Aprile 2022, 3:33pm UTC](https://forum.olinfo.it/t/formula1-subtask-2/7253/2 "2022-04-10T15:33:44Z")

</div>

Anche se vale N \le 10, può comunque succedere che a\_i \* t^2 + b\_i \* t + c\_i \> 2^{32} 😁
