Language: C

typedef struct{double x,y,key;}w;w p[101],bs;i,m,v[100],n;z(w*c,w*d){return c->key>d->key?-1:c->key<d->key;}double outer(q,r,s){return p[q].x*(p[r].y-p[s].y)+p[r].x*(p[s].y-p[q].y)+p[s].x*(p[q].y-p[r].y);}main(){double k,t;for(;~scanf("%d",&n),n;){for(m=i=0;i<n;i++)scanf("%lf,%lf",&p[i].x,&p[i].y),p[m].y>p[i].y?m=i:0;bs=p[m];p[m]=*p;*p=bs;p[100].x=bs.x;p[100].y=bs.y+1;for(i=1;i<n;i++){k=outer(0,i,100);t=(p[i].x-bs.x)*(p[i].x-bs.x)+(p[i].y-bs.y)*(p[i].y-bs.y);k*=k/t;if(bs.x>p[i].x)k=-k;p[i].key=k;}qsort(p+1,n-1,sizeof(w),z);v[0]=0;v[1]=1;v[2]=j=2;for(i=3;i<n;i++){for(;outer(v[j-1],v[j],i)<=0;j--);v[++j]=i;}printf("%d\n",n+~j);}exit(0);}

Compiler output:
main.c:1:46: warning: data definition has no type or storage class
    1 | typedef struct{double x,y,key;}w;w p[101],bs;i,m,v[100],n;z(w*c,w*d){return c->key>d->key?-1:c->key<d->key;}double outer(q,r,s){return p[q].x*(p[r].y-p[s].y)+p[r].x*(p[s].y-p[q].y)+p[s].x*(p[q].y-p[r].y);}main(){double k,t;for(;~scanf("%d",&n),n;){for(m=i=0;i<n;i++)scanf("%lf,%lf",&p[i].x,&p[i].y),p[m].y>p[i].y?m=i:0;bs=p[m];p[m]=*p;*p=bs;p[100].x=bs.x;p[100].y=bs.y+1;for(i=1;i<n;i++){k=outer(0,i,100);t=(p[i].x-bs.x)*(p[i].x-bs.x)+(p[i].y-bs.y)*(p[i].y-bs.y);k*=k/t;if(bs.x>p[i].x)k=-k;p[i].key=k;}qsort(p+1,n-1,sizeof(w),z);v[0]=0;v[1]=1;v[2]=j=2;for(i=3;i<n;i++){for(;outer(v[j-1],v[j],i)<=0;j--);v[++j]=i;}printf("%d\n",n+~j);}exit(0);}
      |                                              ^
main.c:1:46: error: type defaults to 'int' in declaration of 'i' [-Wimplicit-int]
main.c:1:48: error: type defaults to 'int' in declaration of 'm' [-Wimplicit-int]
    1 | typedef struct{double x,y,key;}w;w p[101],bs;i,m,v[100],n;z(w*c,w*d){return c->key>d->key?-1:c->key<d->key;}double outer(q,r,s){return p[q].x*(p[r].y-p[s].y)+p[r].x*(p[s].y-p[q].y)+p[s].x*(p[q].y-p[r].y);}main(){double k,t;for(;~scanf("%d",&n),n;){for(m=i=0;i<n;i++)scanf("%lf,%lf",&p[i].x,&p[i].y),p[m].y>p[i].y?m=i:0;bs=p[m];p[m]=*p;*p=bs;p[100].x=bs.x;p[100].y=bs.y+1;for(i=1;i<n;i++){k=outer(0,i,100);t=(p[i].x-bs.x)*(p[i].x-bs.x)+(p[i].y-bs.y)*(p[i].y-bs.y);k*=k/t;if(bs.x>p[i].x)k=-k;p[i].key=k;}qsort(p+1,n-1,sizeof(w),z);v[0]=0;v[1]=1;v[2]=j=2;for(i=3;i<n;i++){for(;outer(v[j-1],v[j],i)<=0;j--);v[++j]=i;}printf("%d\n",n+~j);}exit(0);}
      |                                                ^
main.c:1:50: error: type defaults to 'int' in declaration of 'v' [-Wimplicit-int]
    1 | typedef struct{double x,y,key;}w;w p[101],bs;i,m,v[100],n;z(w*c,w*d){return c->key>d->key?-1:c->key<d->key;}double outer(q,r,s){return p[q].x*(p[r].y-p[s].y)+p[r].x*(p[s].y-p[q].y)+p[s].x*(p[q].y-p[r].y);}main(){double k,t;for(;~scanf("%d",&n),n;){for(m=i=0;i<n;i++)scanf("%lf,%lf",&p[i].x,&p[i].y),p[m].y>p[i].y?m=i:0;bs=p[m];p[m]=*p;*p=bs;p[100].x=bs.x;p[100].y=bs.y+1;for(i=1;i<n;i++){k=outer(0,i,100);t=(p[i].x-bs.x)*(p[i].x-bs.x)+(p[i].y-bs.y)*(p[i].y-bs.y);k*=k/t;if(bs.x>p[i].x)k=-k;p[i].key=k;}qsort(p+1,n-1,sizeof(w),z);v[0]=0;v[1]=1;v[2]=j=2;for(i=3;i<n;i++){for(;outer(v[j-1],v[j],i)<=0;j--);v[++j]=i;}printf("%d\n",n+~j);}exit(0);}
      |                                                  ^
main.c:1:57: error: type defaults to 'int' in declaration of 'n' [-Wimplicit-int]
    1 | typedef struct{double x,y,key;}w;w p[101],bs;i,m,v[100],n;z(w*c,w*d){return c->key>d->key?-1:c->key<d->key;}double outer(q,r,s){return p[q].x*(p[r].y-p[s].y)+p[r].x*(p[s].y-p[q].y)+p[s].x*(p[q].y-p[r].y);}main(){double k,t;for(;~scanf("%d",&n),n;){for(m=i=0;i<n;i++)scanf("%lf,%lf",&p[i].x,&p[i].y),p[m].y>p[i].y?m=i:0;bs=p[m];p[m]=*p;*p=bs;p[100].x=bs.x;p[100].y=bs.y+1;for(i=1;i<n;i++){k=outer(0,i,100);t=(p[i].x-bs.x)*(p[i].x-bs.x)+(p[i].y-bs.y)*(p[i].y-bs.y);k*=k/t;if(bs.x>p[i].x)k=-k;p[i].key=k;}qsort(p+1,n-1,sizeof(w),z);v[0]=0;v[1]=1;v[2]=j=2;for(i=3;i<n;i++){for(;outer(v[j-1],v[j],i)<=0;j--);v[++j]=i;}printf("%d\n",n+~j);}exit(0);}
      |                                                         ^
main.c:1:59: error: return type defaults to 'int' [-Wimplicit-int]
    1 | typedef struct{double x,y,key;}w;w p[101],bs;i,m,v[100],n;z(w*c,w*d){return c->key>d->key?-1:c->key<d->key;}double outer(q,r,s){return p[q].x*(p[r].y-p[s].y)+p[r].x*(p[s].y-p[q].y)+p[s].x*(p[q].y-p[r].y);}main(){double k,t;for(;~scanf("%d",&n),n;){for(m=i=0;i<n;i++)scanf("%lf,%lf",&p[i].x,&p[i].y),p[m].y>p[i].y?m=i:0;bs=p[m];p[m]=*p;*p=bs;p[100].x=bs.x;p[100].y=bs.y+1;for(i=1;i<n;i++){k=outer(0,i,100);t=(p[i].x-bs.x)*(p[i].x-bs.x)+(p[i].y-bs.y)*(p[i].y-bs.y);k*=k/t;if(bs.x>p[i].x)k=-k;p[i].key=k;}qsort(p+1,n-1,sizeof(w),z);v[0]=0;v[1]=1;v[2]=j=2;for(i=3;i<n;i++){for(;outer(v[j-1],v[j],i)<=0;j--);v[++j]=i;}printf("%d\n",n+~j);}exit(0);}
      |                                                           ^
main.c: In function 'outer':
main.c:1:116: error: type of 'q' defaults to 'int' [-Wimplicit-int]
    1 | typedef struct{double x,y,key;}w;w p[101],bs;i,m,v[100],n;z(w*c,w*d){return c->key>d->key?-1:c->key<d->key;}double outer(q,r,s){return p[q].x*(p[r].y-p[s].y)+p[r].x*(p[s].y-p[q].y)+p[s].x*(p[q].y-p[r].y);}main(){double k,t;for(;~scanf("%d",&n),n;){for(m=i=0;i<n;i++)scanf("%lf,%lf",&p[i].x,&p[i].y),p[m].y>p[i].y?m=i:0;bs=p[m];p[m]=*p;*p=bs;p[100].x=bs.x;p[100].y=bs.y+1;for(i=1;i<n;i++){k=outer(0,i,100);t=(p[i].x-bs.x)*(p[i].x-bs.x)+(p[i].y-bs.y)*(p[i].y-bs.y);k*=k/t;if(bs.x>p[i].x)k=-k;p[i].key=k;}qsort(p+1,n-1,sizeof(w),z);v[0]=0;v[1]=1;v[2]=j=2;for(i=3;i<n;i++){for(;outer(v[j-1],v[j],i)<=0;j--);v[++j]=i;}printf("%d\n",n+~j);}exit(0);}
      |                                                                                                                    ^~~~~
main.c:1:116: error: type of 'r' defaults to 'int' [-Wimplicit-int]
main.c:1:116: error: type of 's' defaults to 'int' [-Wimplicit-int]
main.c: At top level:
main.c:1:206: error: return type defaults to 'int' [-Wimplicit-int]
    1 | typedef struct{double x,y,key;}w;w p[101],bs;i,m,v[100],n;z(w*c,w*d){return c->key>d->key?-1:c->key<d->key;}double outer(q,r,s){return p[q].x*(p[r].y-p[s].y)+p[r].x*(p[s].y-p[q].y)+p[s].x*(p[q].y-p[r].y);}main(){double k,t;for(;~scanf("%d",&n),n;){for(m=i=0;i<n;i++)scanf("%lf,%lf",&p[i].x,&p[i].y),p[m].y>p[i].y?m=i:0;bs=p[m];p[m]=*p;*p=bs;p[100].x=bs.x;p[100].y=bs.y+1;for(i=1;i<n;i++){k=outer(0,i,100);t=(p[i].x-bs.x)*(p[i].x-bs.x)+(p[i].y-bs.y)*(p[i].y-bs.y);k*=k/t;if(bs.x>p[i].x)k=-k;p[i].key=k;}qsort(p+1,n-1,sizeof(w),z);v[0]=0;v[1]=1;v[2]=j=2;for(i=3;i<n;i++){for(;outer(v[j-1],v[j],i)<=0;j--);v[++j]=i;}printf("%d\n",n+~j);}exit(0);}
      |                                                                                                                                                                                                              ^~~~
main.c: In function 'main':
main.c:1:230: error: implicit declaration of function 'scanf' [-Wimplicit-function-declaration]
    1 | typedef struct{double x,y,key;}w;w p[101],bs;i,m,v[100],n;z(w*c,w*d){return c->key>d->key?-1:c->key<d->key;}double outer(q,r,s){return p[q].x*(p[r].y-p[s].y)+p[r].x*(p[s].y-p[q].y)+p[s].x*(p[q].y-p[r].y);}main(){double k,t;for(;~scanf("%d",&n),n;){for(m=i=0;i<n;i++)scanf("%lf,%lf",&p[i].x,&p[i].y),p[m].y>p[i].y?m=i:0;bs=p[m];p[m]=*p;*p=bs;p[100].x=bs.x;p[100].y=bs.y+1;for(i=1;i<n;i++){k=outer(0,i,100);t=(p[i].x-bs.x)*(p[i].x-bs.x)+(p[i].y-bs.y)*(p[i].y-bs.y);k*=k/t;if(bs.x>p[i].x)k=-k;p[i].key=k;}qsort(p+1,n-1,sizeof(w),z);v[0]=0;v[1]=1;v[2]=j=2;for(i=3;i<n;i++){for(;outer(v[j-1],v[j],i)<=0;j--);v[++j]=i;}printf("%d\n",n+~j);}exit(0);}
      |                                                                                                                                                                                                                                      ^~~~~
main.c:1:1: note: include '<stdio.h>' or provide a declaration of 'scanf'
  +++ |+#include <stdio.h>
    1 | typedef struct{double x,y,key;}w;w p[101],bs;i,m,v[100],n;z(w*c,w*d){return c->key>d->key?-1:c->key<d->key;}double outer(q,r,s){return p[q].x*(p[r].y-p[s].y)+p[r].x*(p[s].y-p[q].y)+p[s].x*(p[q].y-p[r].y);}main(){double k,t;for(;~scanf("%d",&n),n;){for(m=i=0;i<n;i++)scanf("%lf,%lf",&p[i].x,&p[i].y),p[m].y>p[i].y?m=i:0;bs=p[m];p[m]=*p;*p=bs;p[100].x=bs.x;p[100].y=bs.y+1;for(i=1;i<n;i++){k=outer(0,i,100);t=(p[i].x-bs.x)*(p[i].x-bs.x)+(p[i].y-bs.y)*(p[i].y-bs.y);k*=k/t;if(bs.x>p[i].x)k=-k;p[i].key=k;}qsort(p+1,n-1,sizeof(w),z);v[0]=0;v[1]=1;v[2]=j=2;for(i=3;i<n;i++){for(;outer(v[j-1],v[j],i)<=0;j--);v[++j]=i;}printf("%d\n",n+~j);}exit(0);}
main.c:1:230: warning: incompatible implicit declaration of built-in function 'scanf' [-Wbuiltin-declaration-mismatch]
    1 | typedef struct{double x,y,key;}w;w p[101],bs;i,m,v[100],n;z(w*c,w*d){return c->key>d->key?-1:c->key<d->key;}double outer(q,r,s){return p[q].x*(p[r].y-p[s].y)+p[r].x*(p[s].y-p[q].y)+p[s].x*(p[q].y-p[r].y);}main(){double k,t;for(;~scanf("%d",&n),n;){for(m=i=0;i<n;i++)scanf("%lf,%lf",&p[i].x,&p[i].y),p[m].y>p[i].y?m=i:0;bs=p[m];p[m]=*p;*p=bs;p[100].x=bs.x;p[100].y=bs.y+1;for(i=1;i<n;i++){k=outer(0,i,100);t=(p[i].x-bs.x)*(p[i].x-bs.x)+(p[i].y-bs.y)*(p[i].y-bs.y);k*=k/t;if(bs.x>p[i].x)k=-k;p[i].key=k;}qsort(p+1,n-1,sizeof(w),z);v[0]=0;v[1]=1;v[2]=j=2;for(i=3;i<n;i++){for(;outer(v[j-1],v[j],i)<=0;j--);v[++j]=i;}printf("%d\n",n+~j);}exit(0);}
      |                                                                                                                                                                                                                                      ^~~~~
main.c:1:230: note: include '<stdio.h>' or provide a declaration of 'scanf'
main.c:1:503: error: implicit declaration of function 'qsort' [-Wimplicit-function-declaration]
    1 | typedef struct{double x,y,key;}w;w p[101],bs;i,m,v[100],n;z(w*c,w*d){return c->key>d->key?-1:c->key<d->key;}double outer(q,r,s){return p[q].x*(p[r].y-p[s].y)+p[r].x*(p[s].y-p[q].y)+p[s].x*(p[q].y-p[r].y);}main(){double k,t;for(;~scanf("%d",&n),n;){for(m=i=0;i<n;i++)scanf("%lf,%lf",&p[i].x,&p[i].y),p[m].y>p[i].y?m=i:0;bs=p[m];p[m]=*p;*p=bs;p[100].x=bs.x;p[100].y=bs.y+1;for(i=1;i<n;i++){k=outer(0,i,100);t=(p[i].x-bs.x)*(p[i].x-bs.x)+(p[i].y-bs.y)*(p[i].y-bs.y);k*=k/t;if(bs.x>p[i].x)k=-k;p[i].key=k;}qsort(p+1,n-1,sizeof(w),z);v[0]=0;v[1]=1;v[2]=j=2;for(i=3;i<n;i++){for(;outer(v[j-1],v[j],i)<=0;j--);v[++j]=i;}printf("%d\n",n+~j);}exit(0);}
      |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       ^~~~~
main.c:1:549: error: 'j' undeclared (first use in this function)
    1 | typedef struct{double x,y,key;}w;w p[101]