제출 #492243

#제출 시각아이디문제언어결과실행 시간메모리
492243darkowlBalloons (CEOI11_bal)C++14
100 / 100
243 ms8560 KiB
/// I in it to win it ! #include <bits/stdc++.h> using namespace std; #define ll long long #define int ll #define F first #define S second #define mp make_pair #define pii pair<int, int> #define pb push_back #define pf push_front #define arr_fill(a, n) for(ll i = 0 ; i < n ; i++){cin >> a[i];} #define arr_fill_sum(a,n,sum) for (ll i = 0 ; i < n ; i++){cin >> a[i];sum+=a[i];} #define arr_out(a,n) for (ll i = 0 ; i < n ; i++){cout << a[i] <<" ";} #define fast ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0); const ll MAXN = 1e6 + 5; const ll MOD = 1e9 + 7; const ll INF = 1e18 + 7; ll pw(ll a, ll b){return b == 0 ? 1LL : (pw(a * a , b / 2) * (b % 2 == 0 ? 1LL : a));} stack < pair<int, double> > s; double vd, x[MAXN], r[MAXN]; void solve () { int n; cin >> n ; cout << fixed << setprecision(3); cin >> x[0] >> r[0]; s.push({0, r[0]}); cout << r[0] <<"\n"; for(int i = 1; i < n; i++) { cin >> x[i] >> r[i]; while (!s.empty()) { r[i] = min(r[i], ((double)(pw(x[i] - x[s.top().F], 2)/(4 * (s.top().S))))); if ( r[i] >= s.top().S){s.pop();} else {break;} } s.push({i, r[i]}); cout << r[i] <<"\n"; } } int32_t main() { fast int t = 1; //cin >> t; while (t--) { solve(); } return 0; }
#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...