Submission #1793055


Source Code Expand

#include <bits/stdc++.h>
using namespace std;
 
using ll = long long;
using pii = pair<int, int>;
using pll = pair<ll, ll>;
using ld = long double;
 
constexpr int INF = 1e9;
constexpr ld pi = acos(-1);
 
int main() {
    int sx, sy, gx, gy;
    cin >> sx >> sy >> gx >> gy;
    if(sx >= gx && sy >= gy) {
        swap(sx, gx);
        swap(sy, gy);
    }
    int lx = min(sx, gx);
    int ly = min(sy, gy);
    int rx = max(sx, gx);
    int ry = max(sy, gy);
    int N;
    cin >> N;
    vector<pii> v(N);
    ld res = abs(sx - gx) + abs(gy - sy);
    res *= 100;
    int dummy;
    bool f = false;
    for(int i = 0; i < N; ++i) {
        cin >> v[i].first >> v[i].second;
        if(sx == gx && sx == v[i].first && ly <= v[i].second && v[i].second <= ry || sy == gy && lx <= v[i].first && v[i].first <= rx && v[i].second == sy) {
            f = true;
        }
        if(sx <= gx && sy <= gy) {
            dummy = INF;
            continue;
        } else if(sx <= gx && sy >= gy) {
            v[i].second = -v[i].second;
            dummy = 1;
        } else if(sx >= gx && sy <= gy) {
            v[i].first = -v[i].first;
            dummy = INF;
        } else {
            v[i].first = -v[i].first;
            v[i].second = -v[i].second;
            dummy = 1;
        }
    }
    if(f) {
        res += 20.0 * (pi / 2 - 1);
        cout << fixed << setprecision(12) << res << endl;
        return 0;
    }
    sort(v.begin(), v.end());
    vector<int> LIS(N, dummy);
    for(auto& p : v) {
        if(lx <= abs(p.first) && abs(p.first) <= rx && ly <= abs(p.second) && abs(p.second) <= ry) {
            *lower_bound(LIS.begin(), LIS.end(), p.second) = p.second;
        }
    }
    int cnt = find(LIS.begin(), LIS.end(), dummy) - LIS.begin();
    if(cnt == ry - ly + 1 || cnt == rx - lx + 1) {
        cnt--;
        res += 20.0 * (pi / 2 - 1);
    }
    //cout << "cnt: " << cnt << endl;
    res -= 20.0 * cnt * (1.0 - pi / 4.0);
    cout << fixed << setprecision(12) << res << endl;
}

Submission Info

Submission Time
Task C - Fountain Walk
User Suibaka
Language C++14 (GCC 5.4.1)
Score 900
Code Size 2070 Byte
Status AC
Exec Time 180 ms
Memory 2560 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 900 / 900
Status
AC × 3
AC × 47
Set Name Test Cases
Sample sample_01.txt, sample_02.txt, sample_03.txt
All sample_01.txt, sample_02.txt, sample_03.txt, sample_01.txt, sample_02.txt, sample_03.txt, subtask_1_01.txt, subtask_1_02.txt, subtask_1_03.txt, subtask_1_04.txt, subtask_1_05.txt, subtask_1_06.txt, subtask_1_07.txt, subtask_1_08.txt, subtask_1_09.txt, subtask_1_10.txt, subtask_1_11.txt, subtask_1_12.txt, subtask_1_13.txt, subtask_1_14.txt, subtask_1_15.txt, subtask_1_16.txt, subtask_1_17.txt, subtask_1_18.txt, subtask_1_19.txt, subtask_1_20.txt, subtask_1_21.txt, subtask_1_22.txt, subtask_1_23.txt, subtask_1_24.txt, subtask_1_25.txt, subtask_1_26.txt, subtask_1_27.txt, subtask_1_28.txt, subtask_1_29.txt, subtask_1_30.txt, subtask_1_31.txt, subtask_1_32.txt, subtask_1_33.txt, subtask_1_34.txt, subtask_1_35.txt, subtask_1_36.txt, subtask_1_37.txt, subtask_1_38.txt, subtask_1_39.txt, subtask_1_40.txt, subtask_1_41.txt
Case Name Status Exec Time Memory
sample_01.txt AC 1 ms 256 KB
sample_02.txt AC 1 ms 256 KB
sample_03.txt AC 1 ms 256 KB
subtask_1_01.txt AC 1 ms 256 KB
subtask_1_02.txt AC 1 ms 256 KB
subtask_1_03.txt AC 1 ms 256 KB
subtask_1_04.txt AC 1 ms 256 KB
subtask_1_05.txt AC 1 ms 256 KB
subtask_1_06.txt AC 1 ms 256 KB
subtask_1_07.txt AC 1 ms 256 KB
subtask_1_08.txt AC 1 ms 256 KB
subtask_1_09.txt AC 51 ms 768 KB
subtask_1_10.txt AC 117 ms 1920 KB
subtask_1_11.txt AC 31 ms 640 KB
subtask_1_12.txt AC 172 ms 2560 KB
subtask_1_13.txt AC 122 ms 1408 KB
subtask_1_14.txt AC 58 ms 1024 KB
subtask_1_15.txt AC 28 ms 640 KB
subtask_1_16.txt AC 172 ms 2560 KB
subtask_1_17.txt AC 103 ms 1792 KB
subtask_1_18.txt AC 81 ms 1408 KB
subtask_1_19.txt AC 79 ms 1408 KB
subtask_1_20.txt AC 161 ms 2560 KB
subtask_1_21.txt AC 172 ms 2560 KB
subtask_1_22.txt AC 173 ms 2560 KB
subtask_1_23.txt AC 180 ms 2560 KB
subtask_1_24.txt AC 1 ms 256 KB
subtask_1_25.txt AC 1 ms 256 KB
subtask_1_26.txt AC 1 ms 256 KB
subtask_1_27.txt AC 1 ms 256 KB
subtask_1_28.txt AC 133 ms 2560 KB
subtask_1_29.txt AC 162 ms 2560 KB
subtask_1_30.txt AC 172 ms 2560 KB
subtask_1_31.txt AC 132 ms 2560 KB
subtask_1_32.txt AC 132 ms 2560 KB
subtask_1_33.txt AC 138 ms 2560 KB
subtask_1_34.txt AC 127 ms 2560 KB
subtask_1_35.txt AC 160 ms 2560 KB
subtask_1_36.txt AC 162 ms 2560 KB
subtask_1_37.txt AC 161 ms 2560 KB
subtask_1_38.txt AC 161 ms 2560 KB
subtask_1_39.txt AC 161 ms 2560 KB
subtask_1_40.txt AC 158 ms 2560 KB
subtask_1_41.txt AC 162 ms 2560 KB