タイトル:基本的な演習矩形領域横断
カテゴリ:
- ACM
- ラインポスト
タグ: - n次元寄託
日:2020年3月14日夜04時16分17秒
、その後、出発点は開始点二つのセグメントの最大別の線分と線分と交差の所定の長さである場合、エンドポイントは、二つのセグメントの最小のエンドポイントです。そして、その後、交差しない、終わりが始まる時点よりも小さい場合、エンドポイントは、大型の開始点よりも、ない方がよいかを判断。しかし、ので、我々は通常、そう比較するため、行の始まりと終わりを知りません。したがって、この方法はn次元に拡張することができます。
問題
質問の基本的な演習矩形領域のポスト
リソースの制約
制限時間:メモリ制限が1.0S:512.0メガバイト
問題の説明
二つの長方形の平面と、そのエッジは直交座標系のX軸またはY軸に平行です。各長方形のために、私たちはそれに反対の頂点のペアの座標を与え、あなたはポスト2つの長方形をプログラミングの面積を計算します。
入力形式
これは、各ラインが矩形を記述して、2つだけの入力ラインを含んでいます。
各行において、各点の座標は、2つの実際の絶対値が10以上^ 7図ないいると、直交座標の対の対向する頂点を与えられています。
出力フォーマット
出力は、2つの小数点以下の桁数を保持し、ポストの領域であり、唯一の本当の番号を含んでいます。
サンプル入力
1 1 3 3
2 2 4 4
サンプル出力
1.00
アルゴリズム
#include<iostream>
#include<string.h>
#include<stdio.h>
using namespace std;
int main(){
double a[8];
for(int i=0;i<8;i++)
cin>>a[i];
double xmin=max(min(a[0],a[2]),min(a[4],a[6]));
double xmax=min(max(a[0],a[2]),max(a[4],a[6]));
double ymin=max(min(a[1],a[3]),min(a[5],a[7]));
double ymax=min(max(a[1],a[3]),max(a[5],a[7]));
if(xmin<xmax&&ymin<ymax)
printf("%.2f",(xmax-xmin)*(ymax-ymin));
else
cout<<"0.00";
}