Language: C++

#include<bits/stdc++.h>
int x1,y1,x2,y2,x,y,n,xs=1,ys=1,pp=0;
struct pos{
	int x,y;
	bool operator<(pos w)const{return x<w.x;}
}ps[200007];
int as[200007],ap=0;
int main(){
	scanf("%d%d",&x1,&y1);
	scanf("%d%d",&x2,&y2);
	if(x1>x2)xs=-1,x1*=-1,x2*=-1;
	if(y1>y2)ys=-1,y1*=-1,y2*=-1;
	scanf("%d",&n);
	for(int i=0;i<n;++i){
		scanf("%d%d",&x,&y);
		x*=xs,y*=ys;
		if(x<x1||x2<x||y<y1||y2<y)continue;
		ps[pp++]=(pos){x,y};
	}
	std::sort(ps,ps+pp);
	if(x1==x2||y1==y2){
		if(pp)printf("%.15f",(y2-y1+x2-x1)*100.-20+10*acos(-1));
		else printf("%.15f",(y2-y1+x2-x1)*100.);
		return 0;
	}
	for(int i=0;i<pp;++i){
		int v=ps[i].y;
		if(!ap||v>as[ap])as[++ap]=v;
		else *std::lower_bound(as+1,as+ap+1,v)=v;
	}
	printf("%.15f",(y2-y1+x2-x1)*100.-(20-acos(-1)*5)*ap);
	return 0;
}

Compiler output:
a.cc:2:8: error: 'int y1' redeclared as different kind of entity
    2 | int x1,y1,x2,y2,x,y,n,xs=1,ys=1,pp=0;
      |        ^~
In file included from /usr/include/features.h:523,
                 from /usr/include/x86_64-linux-gnu/c++/14/bits/os_defines.h:39,
                 from /usr/include/x86_64-linux-gnu/c++/14/bits/c++config.h:683,
                 from /usr/include/c++/14/cassert:43,
                 from /usr/include/x86_64-linux-gnu/c++/14/bits/stdc++.h:33,
                 from a.cc:1:
/usr/include/x86_64-linux-gnu/bits/mathcalls.h:257:1: note: previous declaration 'double y1(double)'
  257 | __MATHCALL (y1,, (_Mdouble_));
      | ^~~~~~~~~~
a.cc: In function 'int main()':
a.cc:12:14: error: ISO C++ forbids comparison between pointer and integer [-fpermissive]
   12 |         if(y1>y2)ys=-1,y1*=-1,y2*=-1;
      |            ~~^~~
a.cc:12:26: error: invalid operands of types 'double(double) noexcept' and 'int' to binary 'operator*'
   12 |         if(y1>y2)ys=-1,y1*=-1,y2*=-1;
      |                        ~~^~~~
a.cc:12:26: note:   in evaluation of 'operator*=(double(double) noexcept, int)'
a.cc:17:33: error: ISO C++ forbids comparison between pointer and integer [-fpermissive]
   17 |                 if(x<x1||x2<x||y<y1||y2<y)continue;
      |                                ~^~~
a.cc:21:22: error: ISO C++ forbids comparison between pointer and integer [-fpermissive]
   21 |         if(x1==x2||y1==y2){
      |                    ~~^~~~
a.cc:22:41: error: invalid operands of types 'int' and 'double(double) noexcept' to binary 'operator-'
   22 |                 if(pp)printf("%.15f",(y2-y1+x2-x1)*100.-20+10*acos(-1));
      |                                       ~~^~~
      |                                       |  |
      |                                       |  double(double) noexcept
      |                                       int
a.cc:23:40: error: invalid operands of types 'int' and 'double(double) noexcept' to binary 'operator-'
   23 |                 else printf("%.15f",(y2-y1+x2-x1)*100.);
      |                                      ~~^~~
      |                                      |  |
      |                                      |  double(double) noexcept
      |                                      int
a.cc:31:27: error: invalid operands of types 'int' and 'double(double) noexcept' to binary 'operator-'
   31 |         printf("%.15f",(y2-y1+x2-x1)*100.-(20-acos(-1)*5)*ap);
      |                         ~~^~~
      |                         |  |
      |                         |  double(double) noexcept
      |                         int