제출 #445820

#제출 시각아이디문제언어결과실행 시간메모리
445820O_oBalloons (CEOI11_bal)C++14
20 / 100
223 ms11744 KiB
#include <bits/stdc++.h> using namespace std; #define int long long #define ld long double #define rep(i,a,b) for(int i=a;i<b;i++) #define repb(i,a,b) for(int i=a;i>=b;i--) #define pb push_back #define mp make_pair #define all(A) A.begin(),A.end() #define allr(A) A.rbegin(),A.rend() #define precise(i) fixed << setprecision(i) #define fi first #define se second #define sz(x) ((int)(x).size()) #define err() cout<<"\n==================================\n"; #define errA(A) for(auto i:A) cout<<i<<" "; cout<<"\n"; #define err1(a) cout<<#a<<" "<<a<<"\n"; #define err2(a,b) cout<<#a<<" "<<a<<" "<<#b<<" "<<b<<"\n"; #define err3(a,b,c) cout<<#a<<" "<<a<<" "<<#b<<" "<<b<<" "<<#c<<" "<<c<<"\n"; #define err4(a,b,c,d) cout<<#a<<" "<<a<<" "<<#b<<" "<<b<<" "<<#c<<" "<<c<<" "<<#d<<" "<<d<<"\n"; const int logN = 20; const int M = 1000000007; const int INF = 1e17; #define PI 3.14159265; const int N = 200005; #define Pii pair<int,int> #define Vi vector<int> #define Vpii vector<Pii> #define PQ priority_queue<int> void setIO(string d_name = "") { ios_base::sync_with_stdio(0); cin.tie(0); if(sz(d_name)){ freopen((d_name+".in").c_str(), "r", stdin); freopen((d_name+".out").c_str(), "w", stdout); } } struct Node { int x; int num; int den; Node(){} Node(int a, int b, int c):x(a), num(b), den(c){} }; int32_t main() { setIO(); int n; cin>>n; Vpii b(n); rep(i,0,n) { cin>>b[i].fi>>b[i].se; } stack<Node> s; vector<ld> ans(n, 1e10); rep(i,0,n) { bool flag= true; while(!s.empty()) { Node p= s.top(); if(((p.x-b[i].fi)*(p.x-b[i].fi)*(p.den)) <= 4*(p.num)*(b[i].se)) { int g= __gcd(((p.x-b[i].fi)*(p.x-b[i].fi)*(p.den)), 4*(p.num)); ans[i]= min(ans[i], ((ld)(((p.x-b[i].fi)*(p.x-b[i].fi)*(p.den))))/((ld)(4*(p.num)))); flag= false; if((p.num)*(4*(p.num)/g) <= (((p.x-b[i].fi)*(p.x-b[i].fi)*(p.den))/g)*(p.den)) { s.pop(); continue; } else { s.push(Node(b[i].fi, ((p.x-b[i].fi)*(p.x-b[i].fi)*(p.den))/g, 4*(p.num)/g)); break; } } else if((b[i].se)*(p.den) >= (p.num)) { s.pop(); continue; } else { break; } } if(flag) { s.push(Node(b[i].fi, b[i].se, 1)); ans[i]= (ld)(b[i].se); } } rep(i,0,n) { cout<<precise(7)<<ans[i]<<"\n"; } return 0; }

컴파일 시 표준 에러 (stderr) 메시지

bal.cpp: In function 'void setIO(std::string)':
bal.cpp:40:10: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   40 |   freopen((d_name+".in").c_str(), "r", stdin);
      |   ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
bal.cpp:41:10: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   41 |   freopen((d_name+".out").c_str(), "w", stdout);
      |   ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#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...