标签:补充 主函数 mes end std nbsp 完整 ali str
描述
给定若干个点,问最多有多少个点是共线的。
主函数代码已经给出,请将其余代码补充完整,提交时请勿包含给定代码。
int main() { vector<Point> vec; Point p; while(cin>>p) { vec.push_back(p); } cout<<maxPoints(vec)<<endl; }
输入
输入数据有若干行,每行两个整数x和y,表示一个点(x, y)。
输出
输出为一个整数,表示共线的最多点数。
样例输入
1 1
2 2
3 3
2 4
样例输出
3
#include<bits/stdc++.h> using namespace std; class Point{ public: int x,y; Point(int x=0,int y=0):x(x),y(y){} friend istream&operator>>(istream &is,Point&p) { is>>p.x>>p.y; return is; } }; int maxPoints(vector<Point>v) { int i,j,k,maxx=0; for(i=0;i<v.size();i++) { for(j=i+1;j<v.size();j++) { int sum=2; double x1=v[i].x-v[j].x; double y1=v[i].y-v[j].y; for(k=j+1;k<v.size();k++) { double x2=v[j].x-v[k].x; double y2=v[j].y-v[k].y; if(x1*y2-x2*y1==0) sum++; } if(sum>maxx) maxx=sum; } } return maxx; } int main() { vector<Point> vec; Point p; while(cin>>p) { vec.push_back(p); } cout<<maxPoints(vec)<<endl; }
标签:补充 主函数 mes end std nbsp 完整 ali str
原文地址:https://www.cnblogs.com/kannyi/p/9068620.html