我的任务是
找到给定集合中的最大并行数。设线为
Ax+ By + C (0 <= |A|,|B|,|C| <= 10^9)
。
输入格式为:
A B C
我不知道我哪里出错了。当我尝试它时似乎工作得很好,但它显示了错误答案&#34;对于在线评判的测试用例!
这是我的代码:
int t;
cin>>t;
while(t--)
{
int n;
cin>>n;
map<pair<double, double>, long long> m;
vector<double> y;
vector<double> z;
while(n--)
{
double a,b,c;
cin>>a>>b>>c;
if(b==0)
{
double x=-(c/a);
bool l=true;
for(vector<double> :: iterator it=y.begin();it!=y.end();it++)
{
if(*it == x)
{
l=false;
break;
}
}
if(l==true)
y.push_back(x);
}
else if(a==0)
{
double x=-(c/b);
bool l=true;
for(vector<double> :: iterator it=z.begin();it!=z.end();it++)
{
if(*it == x)
{
l=false;
break;
}
}
if(l==true)
z.push_back(x);
}
else
{
double A=-(a/b);
double B=-(c/b);
bool l=true;
for(map<pair<double, double>, long long> :: iterator it=m.begin();it!=m.end();it++)
{
if(it->first.first == A && it->first.second != B)
{
it->second = it->second + 1;
l=false;
break;
}
if(it->first.second == B)
{
l=false;
break;
}
}
if(l==true)
m.insert(pair<pair<double,double>,long long>(make_pair(A,B),1));
}
}
long long ans=(long long)max(y.size(),z.size());
for(map<pair<double, double>, long long> :: iterator it=m.begin();it!=m.end();it++)
{
if(it->second > ans)
ans=it->second;
}
cout<<ans<<'\n';
}