I am unable to identify error in my code
Question-Programming Problems and Competitions :: HackerRank
my code:
#include <bits/stdc++.h>
using namespace std;
typedef long long int lli;
#define PI 3.14
int main()
{
lli n;
cin>>n;
pair < pair <float,float> , pair <lli,lli> > a[n];
float theta,dist;
for(lli i=0;i<n;i++)
{
cin>>a[i].second.first>>a[i].second.second;
if(a[i].second.second==0){
if(a[i].second.first>0) theta=0;
else theta=PI;
}
else if(a[i].second.first==0){
if(a[i].second.second>0) theta=(float)((float)(90*PI)/(float)180);
else theta=(float)((float)(270*PI)/(float)180);
}
else{
float temp=(float)((float)a[i].second.second/(float)a[i].second.first);
//cout<<(float)atan(temp)<<endl;
if(a[i].second.first>0){
if(a[i].second.second>0){
theta=(float)atan(temp);
}else{
theta=(float)((float)(2*PI)+(float)atan(temp));
}
}else{
if(a[i].second.second>0){
theta=(float)((float)PI+(float)atan(temp));
}else{
theta=(float)((float)PI+(float)atan(temp));
}
}
}
dist=(float)((float)(a[i].first.first*a[i].first.first)+(float)(a[i].first.second*a[i].first.second));
a[i].first.first=(float)theta;
a[i].first.second=(float)dist;
cout<<theta<<endl;
}
sort(a,a+n);
for(lli i=0;i<n;i++){
cout<<a[i].second.first<<" "<<a[i].second.second<<endl;
}
return 0;
}