# Include <iostream> using namespace std; # define MAX 702/* 284 K 422 MS */typedef struct _ point {int x; int y;} point; point p [MAX]; bool judge (point a, point B, point c) {return (. y-b.y) * (c. x-b.x)-(c. y-b.y) * (. x-b.x);} int main () {int n; while (cin> n) {if (n = 0) break; for (int I = 0; I <n; I ++) cin> p [I]. x> p [I]. y; int max = 0; // brute force search for (int k = 0; k <n; k ++) {for (int I = k + 1; I <n; I ++) {int sum = 0; for (int j = I + 1; j <n; j ++) {if (! Judge (p [k], p [I], p [j]) ++ sum;} if (max <sum) max = sum ;}} cout <max + 2 <endl;} system ("pause"); return 0 ;}# include <iostream> using namespace std; # define MAX 702/* 284K422MS */typedef struct _ point {int x; int y;} point; point p [MAX]; bool judge (point a, point B, point c) {return (. y-b.y) * (c. x-b.x)-(c. y-b.y) * (. x-b.x);} int main () {int n; while (cin> n) {if (n = 0) break; for (int I = 0; I <n; I ++) cin> p [I]. x> P [I]. y; int max = 0; // brute force search for (int k = 0; k <n; k ++) {for (int I = k + 1; I <n; I ++) {int sum = 0; for (int j = I + 1; j <n; j ++) {if (! Judge (p [k], p [I], p [j]) ++ sum;} if (max <sum) max = sum ;}} cout <max + 2 <endl;} system ("pause"); return 0 ;}