Language: C++

/**
SXR0aXAkI0JwbXptI3FhI3Z3I293bCNqY2IjUG0jMCNicG0jVHFkcXZvLyNCcG0jQW10bjBhY2phcWFicXZvLyNNYm16dml0MSNWdyNhdGN1am16I2tpdiNhbXF9bSNQcXUjVnd6I0F0bW14MSNQcWEjaXptI2l0dCNicHF2b2EjUXYjYnBtI3BtaWRtdmEjaXZsI3d2I21pemJwMSNFcHcjcWEjYnBtem0ja2l2I3F2Ym16a21sbSNRdiNQcWEjeHptYW12a20jbXtrbXhiI0lhI3BtI3htenVxYmJtYnBHI1BtI3N2d2VtYnAjRXBpYiMraXh4bWl6bWJwI2J3I1BxYSNrem1pYmN6bWEjSWEsI0ptbnd6bSN3eiNJbmJteiN3eiNKbXBxdmwjYnBtdTEjVnd6I2FwaXR0I2JwbXwja3d1eGlhYSNJY29wYiN3biNwcWEjc3Z3ZXRtbG9tI017a214YiNpYSNQbSNlcXR0bWJwMSNQcWEjYnB6d3ZtI2x3YnAjbXtibXZsI1dkbXojYnBtI3BtaWRtdmEjSXZsI3d2I21pemJwLyNpdmwjUG0jbm1tdG1icCNWdyNuaWJxb2NtI3F2I29jaXpscXZvI0l2bCN4em1hbXpkcXZvI2JwbXUvI053eiNQbSNxYSNicG0jVXdhYiNQcW9wMSNCcG0jQWN4em11bSMrcXYjb3R3enwsMQ==
*/
#include <cstring>
#include <vector>
#include <list>
#include <map>
#include <set>
#include <deque>
#include <stack>
#include <bitset>
#include <algorithm>
#include <functional>
#include <numeric>
#include <utility>
#include <sstream>
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <queue>
#include <cmath>
#include <cstdlib>
#include <ctime>
#include <cassert>

#define F first
#define S second
#define endl '\n'
#define deb(x) cout<<#x<<' '<<x<<endl;
#define pb push_back
#define all(x) (x).begin(), (x).end()

const long long MOD = 1e9 + 7;
const long long N = 1e6 + 228;

using namespace std;

typedef long long ll;
typedef pair<int, int> pii;

#ifdef IZI_KATKA
#define int __int64_t
#else
#define int __int64
#endif

long long readInt() {
    bool minus1 = false;
    long long result = 0;
    char ch;
    ch = getchar();
    while (true) {
        if (ch == '-') break;
        if (ch >= '0' && ch <= '9') break;
        ch = getchar();
    }
    if (ch == '-') minus1 = true; else result = ch-'0';
    while (true) {
        ch = getchar();
        if (ch < '0' || ch > '9') break;
        result = result*10 + (ch - '0');
    }
    if (minus1)
        return -result;
    else
        return result;
}

const double PI = acos(-1);
const int MAXN = 2e5 + 77;

int dp[MAXN];

main() {
	#ifdef IZI_KATKA
	assert(freopen("input", "r", stdin));
    assert(freopen("output", "w", stdout));
    #endif
    int x1 = readInt(), y1 = readInt();
    int x2 = readInt(), y2 = readInt();
    int n = readInt();
    vector <pii> kek;
    for (int i = 1; i <= n; i++){
        kek.pb({readInt(), readInt()});
    }
    if (x1 > x2) {
        x1 = -x1;
        x2 = -x2;
        for (pii &i : kek) i.F *= -1;
    }
    if (y1 > y2) {
        y1 = -y1;
        y2 = -y2;
        for (pii &i : kek) i.S *= -1;
    }
    vector <pair<int,int> > tochno_kek;
    for (pii i : kek) {
        if (x1 <= i.F && i.F <= x2 && y1 <= i.S && i.S <= y2) {
            tochno_kek.pb(i);
        }
    }
    vector<int> y;
    for (pii i : tochno_kek) {
        y.pb(i.S);
    }
    sort(all(y));
    y.erase(unique(all(y)), y.end());
    sort(all(tochno_kek));
    for (int i = 0; i <= n; i++) {
        dp[i] = MOD;
    }
    dp[0] = -MOD;
    int res = 0;
    for (auto i : tochno_kek) {
        int x = lower_bound(all(y), i.S) - y.begin();
        int v = lower_bound(dp, dp + n + 1, x) - dp;
        res = max(res, v);
        dp[v] = min(dp[v], x);
    }
    double ans = 1e2 * (x2 + y2 - x1 - y1) - res * (20 - 5 * PI);
    if (res == min(y2 - y1, x2 - x1) + 1) ans += 5 * PI;
    cout <<fixed << setprecision(11)<< ans << '\n';
    return 0;
}


Compiler output:
a.cc:44:13: error: '__int64' does not name a type; did you mean '__int64_t'?
   44 | #define int __int64
      |             ^~~~~~~
a.cc:70:7: note: in expansion of macro 'int'
   70 | const int MAXN = 2e5 + 77;
      |       ^~~
a.cc:44:13: error: '__int64' does not name a type; did you mean '__int64_t'?
   44 | #define int __int64
      |             ^~~~~~~
a.cc:72:1: note: in expansion of macro 'int'
   72 | int dp[MAXN];
      | ^~~
a.cc:74:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   74 | main() {
      | ^~~~
a.cc: In function 'int main()':
a.cc:44:13: error: '__int64' was not declared in this scope; did you mean '__ynf64'?
   44 | #define int __int64
      |             ^~~~~~~
a.cc:79:5: note: in expansion of macro 'int'
   79 |     int x1 = readInt(), y1 = readInt();
      |     ^~~
a.cc:80:9: error: expected ';' before 'x2'
   80 |     int x2 = readInt(), y2 = readInt();
      |         ^~
a.cc:81:9: error: expected ';' before 'n'
   81 |     int n = readInt();
      |         ^
a.cc:83:14: error: expected ';' before 'i'
   83 |     for (int i = 1; i <= n; i++){
      |              ^
a.cc:83:21: error: 'i' was not declared in this scope
   83 |     for (int i = 1; i <= n; i++){
      |                     ^
a.cc:83:26: error: 'n' was not declared in this scope
   83 |     for (int i = 1; i <= n; i++){
      |                          ^
a.cc:86:9: error: 'x1' was not declared in this scope; did you mean 'y1'?
   86 |     if (x1 > x2) {
      |         ^~
      |         y1
a.cc:86:14: error: 'x2' was not declared in this scope
   86 |     if (x1 > x2) {
      |              ^~
a.cc:91:14: error: 'y2' was not declared in this scope; did you mean 'yn'?
   91 |     if (y1 > y2) {
      |              ^~
      |              yn
a.cc:92:15: error: wrong type argument to unary minus
   92 |         y1 = -y1;
      |               ^~
a.cc:96:27: error: template argument 1 is invalid
   96 |     vector <pair<int,int> > tochno_kek;
      |                           ^
a.cc:96:27: error: template argument 2 is invalid
a.cc:98:13: error: 'x1' was not declared in this scope; did you mean 'y1'?
   98 |         if (x1 <= i.F && i.F <= x2 && y1 <= i.S && i.S <= y2) {
      |             ^~
      |             y1
a.cc:98:33: error: 'x2' was not declared in this scope
   98 |         if (x1 <= i.F && i.F <= x2 && y1 <= i.S && i.S <= y2) {
      |                                 ^~
a.cc:98:42: error: ISO C++ forbids comparison between pointer and integer [-fpermissive]
   98 |         if (x1 <= i.F && i.F <= x2 && y1 <= i.S && i.S <= y2) {
      |                                          ^
a.cc:98:59: error: 'y2' was not declared in this scope; did you mean 'yn'?
   98 |         if (x1 <= i.F && i.F <= x2 && y1 <= i.S && i.S <= y2) {
      |                                                           ^~
      |                                                           yn
a.cc:30:12: error: request for member 'push_back' in 'tochno_kek', which is of non-class type 'int'
   30 | #define pb push_back
      |            ^~~~~~~~~
a.cc:99:24: note: in expansion of macro 'pb'
   99 |             tochno_kek.pb(i);
      |                        ^~
a.cc:102:15: error: template argument 2 is invalid
  102 |     vector<int> y;
      |               ^
a.cc:103:18: error: 'begin' was not declared in this scope; did you mean 'std::begin'?
  103 |     for (pii i : tochno_kek) {
      |                  ^~~~~~~~~~
      |                  std::begin
In file included from /usr/include/c++/14/vector:69,
                 from a.cc:5:
/usr/include/c++/14/bits/range_access.h:114:37: note: 'std::begin' declared here
  114 |   template<typename _Tp> const _Tp* begin(const valarray<_Tp>&) noexcept;
      |                                     ^~~~~
a.cc:103:18: error: 'end' was not declared in this scope; did you mean 'std::end'?
  103 |     for (pii i : tochno_kek) {
      |                  ^~~~~~~~~~
      |                  std::end
/usr/include/c++/14/bits/range_access.h:116:37: note: 'std::end' declared here
  116 |   template<typename _Tp> const _Tp* end(const valarray<_Tp>&) noexcept;
      |                                     ^~~
a.cc:30:12: error: request for member 'push_back' in 'y', which is of non-class type 'int'
   30 | #define pb push_back
      |            ^~~~~~~~~
a.cc:104:11: note: in expansion of macro 'pb'
  104 |         y.pb(i.S);
      |           ^~
a.cc:31:20: error: request for member 'begin' in 'y', which is of non-class type 'int'
   31 | #define all(x) (x).begin(), (x).end()
      |                    ^~~~~
a.cc:106:10: note: in expansion of macro 'all'
  106 |     sort(all(y));
      |          ^~~
a.cc:31:33: error: request for member 'end' in 'y', which is of non-class type 'int'
   31 | #define all(x) (x).begin(), (x).end()
      |                                 ^~~
a.cc:106:10: note: in expansion of macro 'all'
  106 |     sort(all(y));
      |          ^~~
a.cc:107:7: error: request for member 'erase' in 'y', which is of non-class type 'int'
  107 |     y.erase(unique(all(y)), y.end());
      |       ^~~~~
a.cc:31:20: error: request for member 'begin' in 'y', which is of non-class type 'int'
   31 | #define all(x) (x).begin(), (x).end()
      |                    ^~~~~
a.cc:107:20: note: in expansion of macro 'all'
  107 |     y.erase(unique(all(y)), y.end());
      |                    ^~~
a.cc:31:33: error: request for member 'end' in 'y', which is of non-class type 'int'
   31 | #define all(x) (x).begin(), (x).end()
      |                                 ^~~
a.cc:107:20: note: in expansion of macro 'all'
  107 |     y.erase(unique(all(y)), y.end());
      |                    ^~~
a.cc:107:31: error: request for member 'end' in 'y', which is of non-class type 'int'
  107 |     y.erase(unique(all(y)), y.end());
      |                               ^~~
a.cc:31:20: error: request for member 'begin' in 'tochno_kek', which is of non-class type 'int'
   31 | #define all(x) (x).begin(), (x).end()
      |                    ^~~~~
a.cc:108:10: note: in expansion of macro 'all'
  108 |     sort(all(tochno_kek));
      |          ^~~
a.cc:31:33: error: request for member 'end' in 'tochno_kek', which is of non-class type 'int'
   31 | #define all(x) (x).begin(), (x).end()
      |                                 ^~~
a.cc:108:10: note: in expansion of macro 'all'
  108 |     sort(all(tochno_kek));
      |          ^~~
a.cc:109:14: error: expected ';' before 'i'
  109 |     for (int i = 0; i <= n; i++) {
      |              ^
a.cc:109:21: error: 'i' was not declared in this scope
  109 |     for (int i = 0; i <= n; i++) {
      |                     ^
a.cc:109:26: error: 'n' was not declared in this scope
  109 |     for (int i = 0; i <= n; i++) {
      |                          ^
a.cc:110:9: error: 'dp' was not declared in this scope
  110 |         dp[i] = MOD;
      |         ^~
a.cc:112:5: error: 'dp' was not declared in this scope
  112 |     dp[0] = -MOD;
      |     ^~
a.cc:113:9: error: expected ';' before 'res'
  113 |     int res = 0;
      |         ^~~
a.cc:114:19: error: 'begin' was not declared in this scope; did you mean 'std::begin'?
  114 |     for (auto i : tochno_kek) {
      |                   ^~~~~~~~~~
      |                   std::begin
/usr/include/c++/14/bits/range_access.h:114:37: note: 'std::begin' declared here
  114 |   template<typename _Tp> const _Tp* begin(const valarray<_Tp>&) noexcept;
      |                                     ^~~~~
a.cc:114:19: error: 'end' was not declared in this scope; did you mean 'std::end'?
  114 |     for (auto i : tochno_kek) {
      |                   ^~~~~~~~~~
      |                   std::end
/usr/include/c++/14/bits/range_access.h:116:37: note: 'std::end' declared here
  116 |   template<typename _Tp> const _Tp* end(const valarray<_Tp>&) noexcept;
      |                                     ^~~
a.cc:115:13: error: expected ';' before 'x'
  115 |         int x = lower_bound(all(y), i.S) - y.begin();
      |             ^
a.cc:116:13: error: expected ';' before 'v'
  116 |         int v = lower_bound(dp, dp + n + 1, x) - dp;
      |             ^
a.cc:117:9: error: 'res' was not declared in this scope
  117 |         res = max(res, v);
      |         ^~~
a.cc:117:24: error: 'v' was not declared in this scope
  117 |         res = max(res, v);
      |                        ^
a.cc:118:28: error: 'x' was not declared in this scope
  118 |         dp[v] = min(dp[v], x);
      |                            ^
a.cc:120:25: error: 'x2' was not declared in this scope
  120 |     double ans = 1e2 * (x2 + y2 - x1 - y1) - res * (20 - 5 * PI);
      |                         ^~
a.cc:120:30: error: 'y2' was not declared in this scope; did you mean 'y'?
  120 |     double ans = 1e2 * (x2 + y2 - x1 - y1) - res * (20 - 5 * PI);
      |                              ^~
      |                              y
a.cc:120:35: error: 'x1' was not declared in this scope; did you mean 'y1'?
  120 |     double ans = 1e2 * (x2 + y2 - x1 - y1) - res * (20 - 5 * PI);
      |                                   ^~
      |                                   y1
a.cc:120:46: error: 'res' was not declared in this scope
  120 |     double ans = 1e2 * (x2 + y2 - x1 - y1) - res * (20 - 5 * PI);
      |                                              ^~~