제출 #1337184

#제출 시각아이디문제언어결과실행 시간메모리
1337184whatisdpBalloons (CEOI11_bal)C++17
100 / 100
93 ms5912 KiB
#include "bits/stdc++.h"

using namespace std;

using str=string;
using ll = int64_t;
using ull = uint64_t;
using ld = long double;
using vi=vector<int>;
using vll=vector<ll>;
using vb=vector<bool>;
using pi=pair<int,int>;
using vpi=vector<pi>;

#define m1(x) template<class T, class... U> void x(T&& a, U&&... b) 
#define m2(x) (int[]){(x forward<U>(b),0)...}
m1(pr) { cout << forward<T>(a); m2(cout << " " <<); cout << "\n"; }
m1(re) { cin >> forward<T>(a); m2(cin >>); }
template<typename A, typename B> ostream& operator<<(ostream &os, const pair<A, B> &p) { return os << '(' << p.first << ", " << p.second << ')'; }

template<typename T> bool chmax(T &v, T nv) {if (nv>v) {v=nv; return 1;} return 0;}
template<typename T> bool chmin(T &v, T nv) {if (nv<v) {v=nv; return 1;} return 0;}

const int INF=1e9+7;
#define pb push_back
#define fs first
#define sc second

#ifdef DEBUG
#define dbg(x) x
#else
#define dbg(x) 0;
#endif

int du[][2] = {{1,0},{-1,0},{0,1},{0,-1}};

void solve() {
	int n;
	re(n);
	vi X(n);
	vector<long double> R(n);
	
	stack<int> st;
		
	for(int i=0;i<n;i++) {
		re(X[i], R[i]);
		while(!st.empty()) {
			// consider the balloon can touch each other
			// if cannot -> pop
			// if can -> break
			
			long double dis = pow(abs(X[i] - X[st.top()]), 2) / (4 * R[st.top()]);
			chmin(R[i], dis);
			if (R[i] >= R[st.top()]) {
				st.pop();
			} else break;
		}
		
		st.push(i);
	}
	cout << fixed << setprecision(3); 
	for(auto &d:R) pr(d);
}

int main() {
cin.tie(0)->sync_with_stdio(0);
// cout << setprecision(20) << fixed;
solve();
}
#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...