#include <cstdio>
#include <vector>
#include <cmath>
using namespace std;
typedef pair<int,int> PII;
const int N=2005;
int n,ml[N],res;
double A,B,C;
PII pa[N];
bool b[N];
void line(PII a,PII b){
if(a.first==b.first){
A=1,B=0,C=-a.first;
return;
}
A=(b.second-a.second)/(b.first-a.first);
C=a.second-A*a.first;
A=-A,C=-C,B=1;
}
inline double distance(PII a){
return fabs(A*a.first+B*a.second+C)/sqrt(A*A+B*B);
}
int func(){
double dis;
bool is_min=true;
for(int i=0;i<n;i++){
b[i]=true;
for(int j=i+1;j<n;j++){
b[j]=true;
line(pa[i],pa[j]);
for(int m=0;m<n;m++){
if(!b[m]){
b[m]=true;
is_min=true;
dis=distance(pa[m]);
for(int k=0;k<n;k++){
if(!b[k]&&distance(pa[k])<=dis){
is_min=false;
break;
}
}
if(is_min)
ml[m]++;
b[m]=false;
}
}
b[j]=false;
}
b[i]=false;
}
}
int main(){
int a,b;
scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%d%d",&a,&b);
pa[i]={a,b};
}
func();
for(int i=0;i<n;i++)
res^=ml[i];
printf("%d",res);
}
|