Frumos

Hai ca o sa ma apuc sa scriu. Intre timp am facut un fel de atan2 de mana =)) dar iau 2 WA. Creca omit vreun caz.
inline bool cmp(p a,p b)
{
ld adx=a.first-fix.first;
ld ady=a.second-fix.second;
ld bdx=b.first-fix.first;
ld bdy=b.second-fix.second;
//1
if(adx>=0&&ady>=0)
{
if(bdx==0&&bdy>0)
return 1;
if(bdx==0&&bdy<0)
return 0;
if(bdx>0&&bdy==0)
return 0;
if(bdx<0&&bdy==0)
return 0;
if(bdx>0&&bdy>0)
{
if(adx==0)
return 0;
if(ady==0)
return 1;
return (ld)ady/adx<(ld)bdy/bdx;//1
}
if(bdx<0&&bdy>0)
return 1;
else
return 0;
}
//2
if(adx<=0&&ady>=0)
{
if(bdx<0&&bdy>0)
return (ld)ady/adx<(ld)bdy/bdx;//2
else
return 0;//1 3 4
}
//3
if(adx<=0&&ady<=0)
{
if(ady==0&&adx<0)
return 1;//1 2 4
if(bdx<0&&bdy<0)
return (ld)ady/adx<(ld)bdy/bdx;//3
else
return 1;//1 2 4
}
//4
if(adx>=0&&ady<=0)
{
if(bdx==0&&bdy>0)
return 1;
if(bdx==0&&bdy<0)
return 0;
if(bdx>0&&bdy==0)
return 1;
if(bdx<0&&bdy==0)
return 0;
if(bdx>=0&&bdy<=0)
{
if(adx==0)
return 1;
if(ady==0)
return 0;
return (ld)ady/adx<(ld)bdy/bdx;
}
if(bdx<0&&bdy<0)
return 0;
else
return 1;
}
}
L.E. A mers

O sa tin minte treaba asta. MS
