P141SUMA spoj PTIT – Đi đường nào

Nguồn đề bài: http://vn.spoj.com/PTIT/problems/P141SUMA/

1. Đề bài P141SUMA spoj

Đất nước X đang gặp nguy hiểm, có một con quỷ từ đâu tới phá rối người dân nơi đây. Vốn là một đất nước có tinh thần yêu nước, không phải chờ đợi lâu, một dũng sĩ đã ngay lập tức xách gươm lên và đi đánh quỷ. Dũng sĩ cần đi từ điểm A thẳng tới điểm B rồi tới điểm C (Nơi con quỷ đang phá rối). Nhưng không may, khi đến điểm B, dũng sĩ quên mất đi tới C bằng con đường nào bởi ở B có 3 sự lựa chọn một là rẽ vuông góc sang trái hoặc rẽ vuông góc sang phải hoặc đi thằng để tới C. Đúng lúc đó có một con đại bàng bay ngang qua và thấy rõ được con quỷ ở hướng nào.

Giả sử nếu bạn là con đại bàng và được cho biết trước tọa độ 3 điểm A, B, C, hãy nói cho dũng sĩ nên rẽ trái, phải, hay đi thẳng nhé.

Input

Dòng 1, 2, 3 lần lượt chứa tọa độ 3 điểm A, B, C.

Mỗi dòng gồm 2 số nguyên là tọa độ tương ứng. ( |x|, |y| <= 10 ^9 )

Dòng 1, 2, 3 lần lượt chứa tọa độ 3 điểm A, B, C.

Mỗi dòng gồm 2 số nguyên là tọa độ tương ứng. ( |x|, |y| <= 10 ^9 )

Output

Gồm một dòng duy nhất.

In ra “RIGHT” nếu dũng sĩ nên rẽ phải,  “LEFT” nếu rẽ trái và “TOWARDS” nếu đi thằng.

Example

Test 1:

Input:

0 0

0 1

1 1

Output:

RIGHT

Test 2:

Input:

-1 -1

-3 -3

-4 -4

Output:

TOWARDS

Test 3:

Input:

-4 -6

-3 -7

-2 -6

Output:

LEFT

2. Gợi ý P141SUMA spoj

Đây là bài tập ứng dụng hàm CCW trong hình học rất cơ bản. các bạn có thể tìm hiểu về hàm CCW và làm bài này

3. Code  P141SUMA spoj ứng dụng ccw cơ bản

const   fi='';
type    data=longint;
var
        f:text;
        x1,y1,x2,x3,y2,y3:int64;

        ccw:int64;

begin
        assign(f,fi); reset(f);
        readln(f,x1,y1);
        readln(f,x2,y2);
        readln(f,x3,y3);
        close(f);
        ccw:=(x2-x1)*(y3-y1)-(y2-y1)*(x3-x1);
        if ccw>0 then
                write('LEFT')
        else
                if ccw<0 then
                        write('RIGHT')
                ELSE
                        write('TOWARDS');
end.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *