#include <bits/stdc++.h>
using namespace std;
#define ll long long
const ll mod = 1e9 + 9;
const ll mmod = 998244353;
#define vl vector<long long>
#define vll vector<vector<long long>>
ll pow(ll x, ll n, ll mod){
if (n == 0){
return 1;
}
ll half = pow(x, n / 2, mod);
ll half_square = (half * half) % mod;
if (n % 2 == 0) {
return half_square;
} else {
return (half_square * x) % mod;
}
}
ll inversion_x(ll x, ll m){
ll vysledek = pow(x,m-2);
return vysledek;
}
int main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
ll n;
cin >> n;
vector<vector<double>> cisla;
for (ll i = 0; i < n; i++){
double x,y;
cin >> x>>y;
cisla.push_back({x,y});
}
vector<double> polomery;
vector<vector<double>> aktivni;
for (ll i = 0; i < n; i++){
double nejvetsi = cisla[i][1];
for (ll j = 0; j < aktivni.size(); j++){
double rozdil = aktivni[j][0] - cisla[i][0];
nejvetsi = min(rozdil*rozdil/(4*aktivni[j][1]), nejvetsi);
}
polomery.push_back(nejvetsi);
ll pos = aktivni.size()-1;
while (pos >= 0 && nejvetsi > aktivni[pos][1]){
aktivni.pop_back();
pos --;
}
aktivni.push_back({cisla[i][0], nejvetsi});
}
for (ll i = 0; i < n; i++){
cout << polomery[i] << "\n";
}
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |