結果
問題 | No.1064 ∪∩∩ / Cup Cap Cap |
ユーザー |
![]() |
提出日時 | 2020-05-29 21:35:33 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 4 ms / 2,000 ms |
コード長 | 1,313 bytes |
コンパイル時間 | 2,811 ms |
コンパイル使用メモリ | 194,064 KB |
最終ジャッジ日時 | 2025-01-10 16:39:40 |
ジャッジサーバーID (参考情報) |
judge1 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 36 |
ソースコード
#include<bits/stdc++.h> using namespace std; #define ALL(x) x.begin(),x.end() #define rep(i,n) for(int i=0;i<(n);i++) #define debug(v) cout<<#v<<":";for(auto x:v){cout<<x<<' ';}cout<<endl; #define INF 1000000000 #define mod 1000000007 using ll=long long; const ll LINF=1001002003004005006ll; int dx[]={1,0,-1,0}; int dy[]={0,1,0,-1}; // ll gcd(ll a,ll b){return b?gcd(b,a%b):a;} template<class T>bool chmax(T &a,const T &b){if(a<b){a=b;return true;}return false;} template<class T>bool chmin(T &a,const T &b){if(b<a){a=b;return true;}return false;} pair<double, double> f(double a,double b,double c,double d){ double A=2,B=a-c,C=b-d; double x1=(-B+sqrt(B*B-4*A*C))/(2.0*A); double x2=(-B-sqrt(B*B-4*A*C))/(2.0*A); return make_pair(x1,x2); } double EPS=0.000000000000001; signed main(){ cin.tie(0); ios::sync_with_stdio(0); cout<<fixed<<setprecision(12); ll a,b,c,d;cin>>a>>b>>c>>d; ll D=(a-c)*(a-c)-8*(b-d); if(D<0){ cout<<"No"<<endl; return 0; } if(D==0){ cout<<"Yes"<<endl; return 0; } auto p=f(a,b,c,d); double x1=p.first,x2=p.second; double y1=x1*x1+double(a)*x1+double(b); double y2=x2*x2+double(a)*x2+double(b); double P=(y2-y1)/(x2-x1+EPS); cout<<P<<" "<<y1-P*x1<<endl; return 0; }