il codice funziona per tutti i testcase a parte il 022 ed il 024
#include <vector>
#include <iostream>
#include <fstream>
#include <cmath>
#include <algorithm>
using namespace std;
int main(){
long long int i, j, j1, j2, a, b;
vector<long long int> x, y, z, d;
vector<double> distanza_sole;
ifstream in;
in.open("input.txt");
{
in>>a;
for(i=0; i<a; i++){
in>>j>>j1>>j2;
x.push_back(j);
y.push_back(j1);
z.push_back(j2);
}
in>>b;
for(i=0; i<b; i++){
in>>j;
d.push_back(j);
}
}
in.close();
double distanza;
for(i=0; i<a; i++){
distanza= sqrt(pow(x[i]-0,2)+pow(y[i]-0,2)+pow(z[i]-0,2));
distanza_sole.push_back(distanza);
}
sort(distanza_sole.begin(), distanza_sole.end());
vector<double>::iterator up;
ofstream out("output.txt");
for(i=0; i<b; i++){
up = upper_bound(distanza_sole.begin(), distanza_sole.end(), d[i]);
out<<(up - distanza_sole.begin())<<endl;
}
out.close();
}
non riesco a capire come mai non funziona per quei due testcase, soprattutto il 22 lo risolve se al posto dei double metto float (ma in questo modo non risolve altri testcase per overflow)