답안 #485137

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
485137 2021-11-06T10:19:22 Z hammer23 Balloons (CEOI11_bal) C++14
100 / 100
193 ms 11460 KB
#include <bits/stdc++.h>
using namespace std;

/*******  All Required define Pre-Processors and typedef Constants *******/
typedef pair<int,int> pii;
#define fastIO ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL)
#define sz(x) (int)(x).size()
#define all(x) x.begin(),x.end()
#define sor(x) sort(all(x))
#define rsz resize
#define ins insert
#define ft front()
#define bk back()
#define pb push_back
#define eb emplace_back
#define pf push_front
#define ll long long
#define numBit(x) __builtin_popcount(x)
#define lb lower_bound
#define ub upper_bound
#define ar array
#define endl '\n'
#define fi first
#define se second

const int inf = 1e9+1;
const int maxN = 2e5 + 1;
const int MOD = 1e9 + 7;

using namespace std;
 ll powmod(ll a, ll b, ll p){
    a %= p;
    if (a == 0) return 0;
    ll product = 1;
    while(b > 0){
        if (b&1){
            product *= a;
            product %= p;
            --b;
        }
        a *= a;
        a %= p;
        b /= 2;
    }
    return product;
}
 ll inv(ll a, ll p){
    return powmod(a, p-2, p);
}

 ll DIVMOD(ll a, ll b, ll p){
    // A*(B^(MOD-2))%MOD
    return a*inv(b,p)%p;
}
void file(const string FILE = "bongbong") {
    //freopen((FILE + ".INP").c_str(), "r", stdin);
    //freopen((FILE + ".OUT").c_str(), "w", stdout);
}

int n;
long double x[maxN];
long double r[maxN],pck[maxN];
void solve(){
    stack<int> st;
    cin>>n;
    for(int i=0;i<n;i++){
        cin>>x[i]>>r[i];
    }

    for(int i=0;i<n;i++){
        pck[i]=r[i];
        while(!st.empty()){
            int j=st.top();
            pck[i]=min(pck[i],min(r[i],((x[i]-x[j])*(x[i]-x[j]))/(4.0*pck[j])));
            if(pck[i]>=pck[j]) st.pop();
            else break;
        }
        st.push(i);
        //cout<<ans<<setprecision(3)<<endl;
        printf("%.3Lf \n", pck[i]);
    }
}

int main()
{
    //file();
    fastIO;
    int t=1;
    //cin>>t;
    while(t--)
        solve();
    return 0;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 332 KB 10 numbers
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 332 KB 2 numbers
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 332 KB 505 numbers
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 460 KB 2000 numbers
# 결과 실행 시간 메모리 Grader output
1 Correct 18 ms 1356 KB 20000 numbers
# 결과 실행 시간 메모리 Grader output
1 Correct 50 ms 3196 KB 50000 numbers
2 Correct 40 ms 2956 KB 49912 numbers
# 결과 실행 시간 메모리 Grader output
1 Correct 89 ms 5968 KB 100000 numbers
# 결과 실행 시간 메모리 Grader output
1 Correct 135 ms 6808 KB 115362 numbers
2 Correct 95 ms 6776 KB 119971 numbers
# 결과 실행 시간 메모리 Grader output
1 Correct 142 ms 8988 KB 154271 numbers
2 Correct 160 ms 11076 KB 200000 numbers
# 결과 실행 시간 메모리 Grader output
1 Correct 193 ms 11460 KB 200000 numbers
2 Correct 160 ms 11204 KB 199945 numbers