답안 #1097425

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1097425 2024-10-07T09:48:32 Z StillOnQiCondensation Balloons (CEOI11_bal) C++14
40 / 100
380 ms 11404 KB
#include <bits/stdc++.h>
using namespace std;
 
typedef long long ll;
typedef vector<int> vi;
typedef vector<ll> vll;
#define all(x) (x).begin(), (x).end()
#define inf 1000000007ll
#define llmax LLONG_MAX
#define pi 3.141592653589793238462643383279502884197169399
 
long long binpow(long long a, long long b) {
    long long res = 1;
    while (b > 0) {
        if (b & 1)
            res = res * a;
        a = a * a;
        b >>= 1;
    }
    return res;
}
ll ncr(int n, int r)
{
    if (n < r) return 0;
    long long p = 1, k = 1;
    if (n - r < r)
        r = n - r;
    if (r != 0) {
        while (r) {
            p *= n;
            k *= r;
            long long m = __gcd(p, k);
            p /= m;
            k /= m;
            n--;
            r--;
        }
    }
    else
        p = 1;
    return p;
}
 
vector <ll> vcreate(int n){
    vector <ll> v(n);
    for (int i = 0; i < n; i++)
    {
        cin>>v[i];
    }
    return v;
}
int dx[4]{1, -1, 0, 0}, dy[4]{0, 0, 1, -1};
const int MOD=998244353;
ll ModExp(ll x, ll n, ll m) {
	assert(n >= 0);
	x %= m;  // note: m * m must be less than 2^63 to avoid ll overflow
	ll res = 1;
	while (n > 0) {
		if (n % 2 == 1) { res = res * x % m; }
		x = x * x % m;
		n /= 2;
	}
	return res;
}
 
 
 
 
int main()
{
    
    
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    /* freopen("prime_subtractorization_input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);  */ 
   
    /*  ll T;
    cin>>T;
    
    for(ll oo=0; oo<T; oo++)
    {
   
    } */
 
    int n{};
    cin>>n;
    vector<pair<long double,long double>> v(n);
    vector<long double> fin(n,inf*inf);
 
    for(int i{0}; i<n; i++)
    {
        cin>>v[i].first>>v[i].second;
    }
 
    stack<pair<long double,long double>> st;
    for(int i{0}; i<n; i++)
    {
        while(!st.empty())
        {
            long double d=v[i].first-st.top().first;
            long double alr=(d*d)/(4*st.top().second); // max allowed radius till it touches the ballon at the top.
            alr=min(alr,v[i].second);
            
            if(alr<st.top().second)
            {
                fin[i]=min(alr,fin[i]);
                break;
            }
 
            fin[i]=min(alr,fin[i]);
            st.pop();
        }
 
        if(fin[i]==inf*inf)fin[i]=v[i].second;
        st.push({v[i].first,fin[i]});
    }
    cout<<fixed<<setprecision(3);
 
    for(auto u: fin)cout<<u<<endl;
 
   
}
       
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 344 KB 10 numbers
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 344 KB 2 numbers
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 344 KB 505 numbers
# 결과 실행 시간 메모리 Grader output
1 Correct 4 ms 344 KB 2000 numbers
# 결과 실행 시간 메모리 Grader output
1 Incorrect 34 ms 1372 KB 3437th numbers differ - expected: '298.4460000000', found: '304.0000000000', error = '5.5540000000'
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 89 ms 3152 KB 50000 numbers
2 Incorrect 81 ms 3136 KB 49903rd numbers differ - expected: '443977872.4679999948', found: '1000000000.0000000000', error = '556022127.5320000648'
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 175 ms 5972 KB 14857th numbers differ - expected: '7169.6020000000', found: '7176.0000000000', error = '6.3980000000'
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 222 ms 6800 KB 115362 numbers
2 Incorrect 198 ms 6744 KB 119952nd numbers differ - expected: '444418084.8249999881', found: '1000000000.0000000000', error = '555581915.1749999523'
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 279 ms 9000 KB 109914th numbers differ - expected: '1404.0970000000', found: '1415.0000000000', error = '10.9030000000'
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 380 ms 11404 KB 8510th numbers differ - expected: '318.4980000000', found: '320.0000000000', error = '1.5020000000'
2 Halted 0 ms 0 KB -