Submission #1314375

#TimeUsernameProblemLanguageResultExecution timeMemory
1314375muramasaBalloons (CEOI11_bal)C++20
100 / 100
88 ms3572 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define fr(i,a,b,c) for(ll i = a;i<b;i+=c) #define fre(i,a,b,c) for(int i = a;i>=b;i-=c) #define fs first #define sc second #define all(a) a.begin(),a.end() #define IINF 2000000005 #define LINF 1000000000000000005 #define str string #define endl '\n' using pii = pair<int,int>; using pll = pair<ll,double>; using tiii = tuple<int,int,int>; mt19937 rng(chrono::steady_clock::now().time_since_epoch().count()); int uid(int a, int b) { return uniform_int_distribution<int>(a,b)(rng); } ll uld(ll a, ll b) { return uniform_int_distribution<ll>(a,b)(rng); } constexpr int MOD = 1000000007; //998244353 int main(){ ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL); int n;cin >> n; stack<pll> st; vector<double> ans(n); fr(i,0,n,1){ ll x;cin >> x; double r;cin >> r; ans[i] = r; while(!st.empty() && min(ans[i],(double)(st.top().fs - x) * (st.top().fs - x)/((double)4 * st.top().sc)) >= st.top().sc){ ans[i] = min(ans[i],(double)(st.top().fs - x) * (st.top().fs - x)/((double)4 * st.top().sc)); st.pop(); } if(!st.empty())ans[i] = min(ans[i],(double)(st.top().fs - x) * (st.top().fs - x)/((double)4 * st.top().sc)); st.push({x,ans[i]}); } fr(i,0,n,1)cout << fixed << setprecision(3) << ans[i] << endl; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...