Can someone help me with the task, because it fails on every test case and when I test on first ,default test case it gives the right answer...
EDIT:Solved...
EDIT:Solved...
#include <cstdio>
#include <algorithm>
using namespace std;
struct tocke {
int x,y;
}tocka[10000];
pair<int,int>nagib[1000000];
int main() {
int apmax = 2, n , k = 0;
scanf("%d",&n);
for (int i = 0; i < n ; i++ ) {
scanf("%d %d", &tocka[ i ].x, &tocka[ i ].y);
}
int n1,n2;
for (int i = 0 ; i < n ; i++) {
for (int j = i+1 ; j < n ; j++) {
n1 = tocka[ j ].y - tocka[ i ].y;
n1 *= tocka[ j ].x - tocka[ i ].x;
n2 = tocka[ j ].x * tocka[ i ].y - tocka[ i ].x * tocka[ j ].y;
n2 *= tocka[ j ].x - tocka[ i ].x;
nagib [ k ].first = n1;
nagib [ k ].second = n2;
k++;
}
}
sort(nagib,nagib+k);
int zb = 1;
for (int i = 0 ; i <= k ; i++) {
if ( nagib [ i + 1 ] == nagib [ i]) zb++;
else
zb = 1;
apmax = max (zb,apmax);
}
printf("%d\n",apmax+1);
return 0;
}
for ( int i = 0; i < n; i++ )
for ( int j = i+1; j < n; j++ )
{
double k1;
double n1;
if ( x[ i ] == x[ j ] )
{
k1 = INF;
n1 = y[ i ];
}
else
{
k1 = ( y[ i ] - y[ j ] ) / double( x[ i ] - x[ j ] );
n1 = y[ i ] - k1*x[ i ];
}
nagib[ k++ ] = make_pair( k1, n1 ) ;
}
#include <cstdio>
#include <algorithm>
#define INF 99999999
using namespace std;
int x[ 10000 ];
int y[ 10000 ];
pair< double , double >nagib [ 500000 ];
int main() {
int apmax = 0, n , k = 0;
scanf("%d",&n);
for (int i = 0; i < n ; i++ ) {
scanf("%d %d", &x[ i ], &y [ i ]);
}
for (int i = 0 ; i < n ; i++) {
for (int j = i+1 ; j < n ; j++) {
double k1,n1;
if ( x [ i ] == x [ j ] ) {
k1 = INF ;
n1 = y [ i ];
} else {
k1 = (y[ i ] - y[ j ]) / double((x[ i ] - x[ j ]) );
n1 = (y[ i ] - k1 * x[ i ]);
nagib [ k++ ] = make_pair( k1, n1 ) ;
}
}
}
sort(nagib,nagib+k);
int zb = 1;
for (int i = 1 ; i <= k ; i++) {
if ( nagib [ i ] == nagib [ i - 1 ]) zb++;
else
zb = 1;
apmax = max (zb,apmax);
}
printf("%d\n",apmax);
return 0;
}
for (int i = 0 ; i < n ; i++) {
for (int j = i+1 ; j < n ; j++) {
double k1,n1;
if ( x [ i ] == x [ j ] ) {
k1 = INF ;
n1 = y [ i ];
} else {
k1 = (y[ i ] - y[ j ]) / double((x[ i ] - x[ j ]) );
n1 = (y[ i ] - k1 * x[ i ]);
nagib [ k++ ] = make_pair( k1, n1 ) ;
}
}
}
for (int i = 0 ; i < n ; i++) {
for (int j = i+1 ; j < n ; j++) {
double k1,n1;
if ( x [ i ] == x [ j ] ) {
k1 = INF ;
n1 = y [ i ];
} else {
k1 = (y[ i ] - y[ j ]) / double((x[ i ] - x[ j ]) );
n1 = (y[ i ] - k1 * x[ i ]);
}
nagib [ k++ ] = make_pair( k1, n1 ) ;
}
}
sort(nagib,nagib+k);
int zb = 1;
double raz1,raz2;
for (int i = 1 ; i < k ; i++) {
raz1 = nagib [ i ].first - nagib [ i - 1 ].first;
raz2 = nagib [ i ].second - nagib [ i - 1 ].second;
if (fabs(raz1) < ERR && fabs(raz2) < ERR ) zb++;
else
zb = 1;
apmax = max (zb,apmax);
}