http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=417
#include<iostream>
#include<stdlib.h>
#include<vector>
#include<string>
using namespace std;
struct point
{
double x;
double y;
};
int main()
{
vector<point>left;
vector<point>right;
point garbage;
garbage.x = 0;
garbage.y = 0;
string input="",tmp="";
double x = 0.0, y = 0.0, number = 0.0;
int line=0,count, pos, point_number=1;
bool flag;
while(getline(cin,input))
{
if (input[0] == '*')
break;
count = 0,pos=2;
int len = input.length();
for (int i = 2; i <= len; i++)
{
if (input[i] == '\0' || input[i]=='\n')
{
for (int j = pos; j <= i-1; j++)
tmp = tmp + input[j];
number = atof(tmp.c_str());
count++;
tmp = "";
}
else if (input[i]== ' ')
{
for (int k = pos; k <= i - 1; k++)
tmp = tmp + input[k];
number = atof(tmp.c_str());
count++;
tmp = "";
pos = i + 1;
}
switch (count)
{
case 1:
left.push_back(garbage);
left[line].x = number;
break;
case 2:
left[line].y = number;
break;
case 3:
right.push_back(garbage);
right[line].x = number;
break;
case 4:
right[line].y = number;
break;
}
}
line++;
}
while (true)
{
cin >> x;
cin >> y;
flag = 0;
if (x == 9999.9 && y == 9999.9)
break;
for (int i = 0; i <= line-1; i++)
{
if (x > left[i].x && x < right[i].x && y< left[i].y && y> right[i].y)
{
cout << "Point " << point_number << " is contained in figure " << i+1 << endl;
flag = 1;
}
}
if (flag == 0)
cout << "Point " << point_number << " is not contained in any figure" << endl;
point_number++;
}
return 0;
}
沒有留言:
張貼留言