Problem hidden
|This problem was hidden by Editorial Board member probably because it has incorrect language|version or invalid test data, or description of the problem is not clear.|

P132SUME - SUM2 E - Vườn táo

Gia đình Tí được cấp một mảnh đất hình tam giác ở ven sông. Khu này có rất nhiều cây táo. Tí rất thích ăn táo, nhưng Tí chỉ được hái táo ở những cây thuộc gia đình mình.

Nhiệm vụ của bạn là hãy tính diện tích mảnh đất của gia đình Tí và đếm xem có bao nhiêu cây táo nằm trong khu vực này. (Cây táo nào nằm ở hàng rào thì coi là thuộc về gia đình Tí luôn).

Input

Ba dòng đầu tiên chứa tọa độ các đỉnh của tam giác.

Dòng tiếp theo là số cây táo N (1 ≤ N ≤ 100).

N dòng tiếp theo, mỗi dòng chứa tọa độ của một cây táo.

Tất cả các tọa độ đều là số nguyên dương nhỏ hơn 1000.

Output

Dòng đầu tiên là diện tích mảnh đất nhà Tí, độ chính xác là một chữ số sau dấu thập phân.

Dòng thứ hai là số cây táo thuộc về gia đình Tí.

Example

Test 1:

Input:

1 1
5 1
3 3
4
3 1
3 2
3 3
3 4

Output:

4.0
3

Test 2:

Input:

3 2
5 4
1 6
3
2 4
3 5
4 3

Output:

6.0
3


Test 3:

Input:

2 6
5 1
7 8
5
1 4
3 5
6 4
6 5
4 7

Output:

15.5
2


Được gửi lên bởi:adm
Ngày:2013-07-19
Thời gian chạy:1s
Giới hạn mã nguồn:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Ngôn ngữ cho phép:ASM32-GCC ASM32 MAWK BC C CSHARP C++ 4.3.2 CPP CPP14 COFFEE LISP sbcl DART FORTH GO JAVA JS-RHINO JS-MONKEY KTLN OCT PAS-GPC PAS-FPC PERL PERL6 PROLOG PYTHON PYTHON3 PY_NBC R RACKET SQLITE SWIFT UNLAMBDA

hide comments
2018-05-13 16:03:41
-.-. sau bao lần vật lộn với các thuật toán trên trời dưới biển thì em đã AC với thuật toán sơ khai nhất mà ngay lần đầu em sử dụng.-.-. thật trớ trêu.:<
2018-05-13 04:24:38
Dùng ct này : s=1/2*abs((xb-xa)*(yc-ya)-(xc-xa)*(yb-ya)) :v
Nhớ ép kiểu số thực
2018-02-14 04:40:37
Chú ý kiểu dữ liệu nhé :(
2014-09-04 09:05:08 Flappybird
ko biet bo test co TH gi dac biet nua ko ma van kq sai :(
#include<stdio.h>
#include<iostream>
#include<cmath>
using namespace std;
float x1,y4,x2,y2,x3,y3,n,a[100][5];
int k=0;
float s;
int ktra3(float x, float y){
float a=((x-x1)*(y-y3)-(x-x3)*(y-y4));
float b=((x2-x1)*(y2-y3)-(x2-x3)*(y2-y4));
if(a>=0&&b>=0) return 1;
if(a<=0&&b<=0) return 1;
else return 0;
}
int ktra2(float x, float y){
float a=((x-x2)*(y-y3)-(x-x3)*(y-y2));
float b=((x1-x2)*(y4-y3)-(x1-x3)*(y4-y2));
if(a>=0&&b>=0) return 1;
if(a<=0&&b<=0) return 1;
else return 0;
}
int ktra1(float x, float y){
float a=((x-x1)*(y-y2)-(x-x2)*(y-y4));
float b=((x3-x1)*(y3-y2)-(x3-x2)*(y3-y4));
if(a>=0&&b>=0) return 1;
if(a<=0&&b<=0) return 1;
else return 0;
}
int main(){
cin>>x1>>y4>>x2>>y2>>x3>>y3>>n;
for(int i=1;i<=n;i++) cin>>a[i][1]>>a[i][2];
s=((y4-y2)*(x3-x2)-(x1-x2)*(y3-y2))/2;
printf("%.1f",fabs(s));cout<<endl;
for(int i=1;i<=n;i++) if(ktra1(a[i][1],a[i][2])&&ktra2(a[i][1],a[i][2])&&ktra3(a[i][1],a[i][2])) k++;
cout<<k;
return 0;
}
© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.