| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
请大神帮忙指导下,测试用例测试是对的,但是一直是WA。非常感谢O(∩_∩)O~#include <IOSTREAM>
#include <MATH.H>
using namespace std;
#define DataType float
typedef struct
{
DataType x;
DataType y;
}Coordinate;
typedef struct
{
DataType x1;
DataType x2;
}Radar_x;
Coordinate Islands[1001];
int GetTheMinNumOfRadar(int IslandsCount,DataType Distance);
int main()
{
int IslandsCount = 0;
DataType Distance = 0.0;
int MinNum = 0,icase = 1;
int i = 0,j = 0;
while(true)
{
cin>>IslandsCount;
cin>>Distance;
if (0 == IslandsCount && 0 == Distance)
{
break;
}
for(i=0;i<IslandsCount;i++)
{
cin>>Islands[i].x;
cin>>Islands[i].y;
}
getchar();
MinNum = GetTheMinNumOfRadar(IslandsCount,Distance);
cout<<"Case "<<icase<<": "<<MinNum<<endl;
icase++;
}
return 0;
}
int GetTheMinNumOfRadar(int IslandsCount,DataType Distance)
{
if (0 == IslandsCount)
{
return 0;
}
int RadarCount = 1;
DataType tempValue = 0.0;
Radar_x* pRadar_x = new Radar_x[IslandsCount];
int i=0,j=0,iIndex = 0;
//计算小岛与X轴交点
for (i=0;i<IslandsCount;i++)
{
//if ((Distance < Islands[i].y) || (0 > Islands[i].y) )
if (Distance <abs(Islands[i].y))
{
return -1;
}
tempValue = sqrtf((Distance*Distance) - (Islands[i].y*Islands[i].y));
pRadar_x[i].x1 = Islands[i].x - tempValue;
pRadar_x[i].x2 = Islands[i].x + tempValue;
}
Radar_x xTemp;//将小岛与x轴相交的左坐标排序
for (i=0;i<IslandsCount;i++)
{
for (j=i+1;j<IslandsCount;j++)
{
if (pRadar_x[i].x1>pRadar_x[j].x1)
{
xTemp.x1 = pRadar_x[i].x1;
xTemp.x2 = pRadar_x[i].x2;
pRadar_x[i].x1 = pRadar_x[j].x1;
pRadar_x[i].x2 = pRadar_x[j].x2;
pRadar_x[j].x1 = xTemp.x1;
pRadar_x[j].x2 = xTemp.x2;
}
}
}
//计算雷达最小个数
for (iIndex=0,i=1;i<IslandsCount;i++)
{
for (j=iIndex;j<i;j++)
{
if (pRadar_x[j].x2 < pRadar_x[i].x1)
{
RadarCount++;
iIndex = i;
}
}
}
delete[] pRadar_x;
return RadarCount;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator