hrbust OJ13哥的机器人(利用叉乘判断拐向)

View Code
/*
*  利用叉乘判断拐向 
*  auther:Try86
*/

#include <cstdio>
#include <iostream>

using namespace std;

char str[1000];
struct point {
    int x;
    int y;
}A, B, C;

int crossProd(point A, point B, point C) {
    return (B.x-A.x)*(C.y-A.y) - (B.y-A.y)*(C.x-A.x);
}

int main() {
    int n;
    while (scanf("%d", &n), n) {
        scanf ("%d%d%d%d%d%d", &A.x, &A.y, &B.x, &B.y, &C.x, &C.y);
        int dir, k = 0;
        for (int i=2; i<n; ++i) {
            dir = crossProd(A, B, C);
            if (dir > 0) str[k++] = 'L';
            else if (dir < 0) str[k++] = 'R';    
            A = B;
            B = C;
            if (i < n-1) scanf ("%d%d", &C.x, &C.y);        
        }
        str[k] = '\0';
        printf ("%s\n", str);
    }
    return 0;
}

 

posted on 2012-04-22 11:39  Try86  阅读(186)  评论(0)    收藏  举报