Submission #941484

# Submission time Handle Problem Language Result Execution time Memory
941484 2024-03-09T02:02:56 Z dwuy Balloons (CEOI11_bal) C++14
20 / 100
874 ms 12044 KB
#include <bits/stdc++.h>

#define fastIO ios_base::sync_with_stdio(false); cin.tie(NULL)
#define file(a) freopen(a".inp","r",stdin); freopen(a".out", "w",stdout)
#define fi first
#define se second
#define endl "\n"
#define len(s) int32_t(s.length())
#define MASK(k)(1LL<<(k))
#define TASK "test"
#define int long long
#define double long double

using namespace std;

typedef tuple<int, int, int> tpiii;
typedef pair<double, double> pdd;
typedef pair<int, int> pii;
typedef long long ll;

const long long OO = 1e18;
const int MOD = 1e9 + 7;
const int INF = 1e9;
const int MX = 200005;

int n;
pdd a[MX];
pdd v[MX];

void nhap(){
    cin >> n;
    for(int i=1; i<=n; i++) cin >> a[i].fi >> a[i].se;
}

double sqr(double x){
    return x*x;
}

double euler(pdd a, pdd b){
    return sqrt(sqr(a.fi - b.fi) + sqr(a.se - b.se));
}

double dis(pdd ball, double p){
    double lo=0, hi=INF;
    for(int t=0; t<45; t++){
        double mid = (lo+hi)/2;
        if(euler(ball, {p, mid}) >= mid + ball.se) lo = mid;
        else hi = mid;
    }
    return (lo + hi)/2;
}

void solve(){   
    int id = 0;
    // for(int i=1; i<=n; i++){ 
    //     for(int j=1; j<i; j++) a[i].se = min(a[i].se, dis(a[j], a[i].fi));
    //     cout << setprecision(3) << fixed << a[i].se << endl;
    // }
    for(int i=1; i<=n; i++){
        while(id>1){
            double dis1 = dis(v[id], a[i].fi);
            double dis2 = dis(v[id - 1], a[i].fi);
            if(dis1 > dis2) id--;
            else break;
        }
        v[id+1] = {a[i].fi, min(a[i].se, id==0? 1e10 : dis(v[id], a[i].fi))};
        id++;
        while(id>1 && v[id].se > v[id-1].se) v[id-1] = v[id], id--;
        cout << fixed << setprecision(3) << v[id].se << '\n';
    }
}

int32_t main(){
    fastIO;
    //file(TASK);

    nhap();
    solve();

    return 0;
}


# Verdict Execution time Memory Grader output
1 Correct 1 ms 2648 KB 10 numbers
# Verdict Execution time Memory Grader output
1 Correct 1 ms 2648 KB 2 numbers
# Verdict Execution time Memory Grader output
1 Incorrect 3 ms 2396 KB 53rd numbers differ - expected: '213.0000000000', found: '235.0000000000', error = '22.0000000000'
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 7 ms 2396 KB 504th numbers differ - expected: '160.9360000000', found: '163.0000000000', error = '2.0640000000'
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 69 ms 4700 KB 653rd numbers differ - expected: '96.2810000000', found: '123.0000000000', error = '26.7190000000'
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 185 ms 7196 KB 14174th numbers differ - expected: '0.7720000000', found: '1.3710000000', error = '0.5990000000'
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 345 ms 9552 KB 7458th numbers differ - expected: '1.9040000000', found: '8.0000000000', error = '6.0960000000'
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 388 ms 10004 KB 4850th numbers differ - expected: '0.7590000000', found: '4.0000000000', error = '3.2410000000'
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 615 ms 12044 KB 1751st numbers differ - expected: '1868.0130000000', found: '1868.0110000000', error = '0.0020000000'
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 874 ms 10252 KB 2723rd numbers differ - expected: '859.0470000000', found: '859.0580000000', error = '0.0110000000'
2 Halted 0 ms 0 KB -