C++ Sol without using double map


#1
int n=A.size(),i,j;
if(n<3)
return n;
int ans=2;
for(i=0;i<n-2;i++)
{
    map<pair<int,int> , int >m;
    int maxi=0,con=0;
    for(j=i+1;j<n;j++)
    {
        if(A[j]==A[i] && B[j]==B[i])
        con++;
        else
        {
        int up=A[j]-A[i];
        int den=B[j]-B[i];
        int gcd=__gcd(up,den);
        up/=gcd;
        den/=gcd;
        m[{up,den}]++;
        if(m[{up,den}]>maxi)
        maxi=m[{up,den}];
        }
    }
    if(maxi+1+con>ans)
    ans=maxi+1+con;
}
return ans;