Submission #1143663

#TimeUsernameProblemLanguageResultExecution timeMemory
1143663liangjeremyBalloons (CEOI11_bal)C++20
20 / 100
156 ms14736 KiB
#include<bits/stdc++.h>
#include<random>
using namespace std;
using db=double;
using ll=long long;
using sll=__int128;//super long long
using lb=long double;//lb is slow
//numbers for hashing: b(19260817),mod(998244353)
// freopen("fencedin.in", "r", stdin);
// freopen("fencedin.out", "w", stdout);

struct ballon{
	int coor;
	lb radius;
};

int main(){
    ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
	int n; cin>>n; vector<ballon>v(n);
	for(int i=0; i<n; i++){
		cin>>v[i].coor>>v[i].radius;
	}
	stack<ballon>st; vector<lb>ans(n);
	for(int i=0; i<n; i++){
		lb rd=v[i].radius; bool flag=true;
		while(!st.empty() && flag){
			rd=min(rd,(st.top().coor-v[i].coor)*(st.top().coor-v[i].coor)/(4*st.top().radius));
			if(rd>st.top().radius)st.pop();
			else flag=false;
		}
		ans[i]=rd; st.push({v[i].coor,rd});
	}
	for(auto x:ans){
		cout<<fixed<<setprecision(10)<<x<<'\n';
	}
}
#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...