2021/2/2CCF练习202009(C++)

2021/2/2CCF练习202009(C++)

202009-1
#include
#include
#include
using namespace std;
struct Point {
int id;
int distance;
Point(int id, int distance) : id(id), distance(distance){}
};
bool cmp(const Point &p1, const Point &p2)
{
if (p1.distance == p2.distance) {
return p1.id < p2.id;
}
return p1.distance < p2.distance;
}
int main()
{
int n,X,Y;
cin>>n>>X>>Y;
if(n>=3&&n<=200)
{
vector points;
int px, py;
int dis;
for (int i = 0; i < n; i++) {
cin >> px >> py;
dis = (X-px)(X-px)+(Y-py)(Y-py);
points.push_back(Point(i + 1, dis));
}
sort(points.begin(), points.end(), cmp);
for (int i = 0; i < 3; i++) {
cout << points[i].id << endl;
}
}
else
cout<<“ERROR”<<endl;
return 0;
}
202009-2
#include
using namespace std;
int Inarea(int xl,int yd,int xr,int yu,int disX,int disY)
{
if(disX>=xl && disX<=xr && disY>=yd && disY<=yu)
return 1;
else
return 0;
}
int main()
{
int n,k,t,xl,yd,xr,yu;
cin>>n>>k>>t;
cin>>xl>>yd>>xr>>yu;
int passNum=0,stayNum=0;
int px,py;
for(int i=0;i<n;i++)
{
bool isPass=false;
bool isStay=false;
int max=0;
for(int j=0;j<t;j++)
{
cin>>px>>py;
if(Inarea(xl,yd,xr,yu,px,py))
{
isPass=true;
max++;
}
else
{
if(max>=k)
isStay=true;
max=0;
}
}
if(isPass)
passNum++;
if(isStay||max>=k)
stayNum++;
}
cout<<passNum<<endl;
cout<<stayNum<<endl;
return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_40395925/article/details/113540724