Language: C++

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <vector>
#include <map>
#include <queue>
#include <set>
#include <cmath>
#include <list>
#include <chrono>
#include <thread>
#include <thread>
#include <fstream>
#include <iomanip>

using namespace std;

//const bool debug = false;

#ifndef M_PI
    #define M_PIl          3.141592653589793238462643383279502884L /* pi */
#endif // M_PI

#define y1 roman_kaban
#define rank oryshych_konb
#define ull unsigned long long
#define ll long long
const int mod = int(1e9) + 7;
//const int inf = 1e7;
//const long long infLL = 1e16;
//const int MX2 = 10100500; //  e7
//const long long INF = 1e18 + 0.5;
const int MX = 200500; //       e6
const int INF = int(1e8) + 1;
int x[MX];
int y[MX];
int ans[MX];
pair<int,int> a[MX];
/*
int x1, x_st, x_fn;

void check(){
    if(x_st ==)
}
*/

void print_output2(int a, long double b){
    cout << a << b << endl;
}

void print_output(int a, int res){
    if(res == 0) {cout << a << "00" << endl; return ;}
    long double b = res * (2 - M_PIl / 2) * 10;

    //cout << a << endl << b << endl;
    long long t = 100;
    while(b + 1e-5 > t){
        a /= 10;
        t *= 10;
    }
    cout << t * a - b << endl;
    return;
    b = t - b;
    a--;
    if(a)cout << a;
    int signs = 0;

    if(signs){
        while(t > 10){
            t /= 10;
            signs++;
            if(b < t) cout << 0;
        }
    }
    int a = b;
    while(a){
        signs++;
        a /= 10;
    }
    cout.precision(16 - signs);
    cout << b << endl;
}

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    //freopen("/Users/ozzy/Documents/in.txt","r", stdin);
    int x1, y1, x2, y2;
    cin >> x1 >> y1 >> x2 >> y2;
    cout.precision(16);
    //cout << fixed;
    if(x1 > x2 || (x1 == x2 && y1 > y2)){
        swap(x1, x2);
        swap(y1, y2);
    }
    int n;
    cin >> n;
    for(int i = 0; i < n; i++){
        cin >> x[i] >> y[i];
    }
    if(y1 > y2){
        y1 = INF - y1;
        y2 = INF - y2;
        for(int i = 0; i < n; i++){
            y[i] = INF - y[i];
        }
    }
    y2 -= y1;
    x2 -= x1;
    for(int i = 0; i < n; i++){
        x[i] -= x1;
        y[i] -= y1;
    }
    x1 = y1 = 0;

    int pos = 0;
    while(pos < n){
        if(x[pos] < 0 || y[pos] < 0 || x[pos] > x2 || y[pos] > y2){
            n--;
            x[pos] = x[n];
            y[pos] = y[n];
        }else pos++;
    }
    if(y2 > x2){
        swap(x2, y2);
        for(int i = 0; i < n; i++){
            swap(x[i], y[i]);
        }
    }

    for(int i = 0; i < n; i++){
        a[i] = {y[i], x[i]};
    }
    sort(a, a + n);
    for(int i = 0; i < n; i++){
        x[i] = a[i].second;
        y[i] = a[i].first;
    }
    if(y2 == 0){
        print_output2(x2 + y2, -(2 - M_PIl) * 10);
        return 0;
    }
    /*
    int x_st = x[0];
    int x_fn;;
    if(y[0] == 0) x_fn = x2; else{
         x_fn = x[0];
         if(x[0] == x1) x1++;
    }
    for(int i = 1; i < n; i++){
        if(y[i] != y[i - 1]) x_st = x_fn = -1;
        if(x[i] == x1) {
            x1++;
        }else{
            if(x[i] == x_st - 1) {
                x_st--;
            }else
            if(x[i] >= x_st && x[i] <= x_fn){
                x_st = x[i];
            }else
                x_st = x_fn = x[i];
        }

        if(x1 == x_st) x1 = x_fn + 1;
    }
    if(x1 > n || x_st <= n && x_fn >= n)
        */
    // I SHOULD START READING EXAMPLES
    for(int i = 0; i <= n; i++){
        ans[i] = INF + 10;
    }
    ans[0] = -1;
    for(int i = 0; i < n; i++){
        auto it = lower_bound(ans, ans + n, x[i]);
        *it = x[i];
    }
    int res = 0;
    for(int i = 0; i <= n; i++){
        if(ans[i] < INF + 10) res = i;
    }
    print_output(x2 + y2, res);
    //print_output(10, 233);
    //printf("%.14f\n", ans);
    return 0;
}


Compiler output:
a.cc: In function 'void print_output(int, int)':
a.cc:75:9: error: declaration of 'int a' shadows a parameter
   75 |     int a = b;
      |         ^
a.cc:51:23: note: 'int a' previously declared here
   51 | void print_output(int a, int res){
      |                   ~~~~^