http://pl.spoj.com/problems/PP0506A/
#include <iostream>
#include <list>
#include <cmath>
using namespace std;
class Punkt
{
public:
Punkt(string n,int px,int py):nazwa(n),x(px),y(py),modul(sqrt(x*x+y*y)){}
string nazwa;
int x;
int y;
int modul;
};
bool operator<(Punkt & P1, Punkt & P2)
{
return P1.modul<P2.modul;
}
ostream & operator<< (ostream & os, Punkt & a)
{
os << a.nazwa << " " << a.x << " " << a.y << endl;
return os;
}
int main()
{
list <Punkt> Lista;
list <Punkt>::iterator itr;
itr=Lista.begin();
int t; cin>>t;
for(int i=1;i<=t;i++)
{
int n; cin>>n;
for(int j=1;j<=n;j++)
{
string nazwa; cin>>nazwa;
int x; cin>>x;
int y; cin>>y;
Punkt MojPunkt(nazwa,x,y);
Lista.push_back(MojPunkt);
}
Lista.sort();
for(itr=Lista.begin();itr!=Lista.end();++itr)
cout << *itr;
Lista.clear();
cout << endl;
}
return 0;
}
Napisałem tu program. SPOJ pokazuje, że błędna odpowiedź a output się zgadza. Nie wiem co tu może być źle. Może uda się komuś wymyślić taki input, że program będzie dawał złe wyniki?