WA求调
查看原帖
WA求调
566238
hejianxing楼主2022/11/14 19:44

拿别人家的AC代码拍了1h都没错

#include <cstdio>
#include <iostream>
using namespace std;
int T, rax, ray, rbx, rby, lax, lay, lbx, lby;
int cc(int xa, int ya, int xb, int yb) { return xa * yb - xb * ya >= 0; }
void ch() {
    if ((cc(rbx - lbx, ray - lby, lax - lbx, lay - lby) == cc(lax - lbx, lay - lby, rax - lbx, ray - lby)) && (cc(lbx - rax, lby - ray, rbx - rax, 0) == cc(rbx - rax, 0, lax - rax, lay - ray))) printf("T\n");
    else if ((cc(rbx - lbx, rby - lby, lax - lbx, lay - lby) == cc(lax - lbx, lay - lby, rbx - lbx, ray - lby)) && (cc(lbx - rbx, lby - ray, 0, rby - ray) == cc(0, rby - ray, lax - rbx, lay - ray))) printf("T\n");
    else if ((cc(rax - lbx, rby - lby, lax - lbx, lay - lby) == cc(lax - lbx, lay - lby, rbx - lbx, rby - lby)) && (cc(lbx - rbx, lby - rby, rax - rbx, 0) == cc(rax - rbx, 0, lax - rbx, lay - rby))) printf("T\n");
    else if ((cc(rax - lbx, ray - lby, lax - lbx, lay - lby) == cc(lax - lbx, lay - lby, rax - lbx, rby - lby)) && (cc(lbx - rax, lby - rby, 0, ray - rby) == cc(0, ray - rby, lax - rax, lay - rby))) printf("T\n");
    else printf("F\n");
}
int main() {
    // freopen("data.in", "r", stdin);
    // freopen("my.out", "w", stdout);
    scanf("%d", &T);
    while (T--) {
        scanf("%d%d%d%d%d%d%d%d", &lax, &lay, &lbx, &lby, &rax, &ray, &rbx, &rby);
        if (rax > rbx) swap(rax, rbx);
        if (ray < rby) swap(ray, rby);
        if (lby > lay) swap(lbx, lax), swap(lay, lby);
        if ((lax >= rax && lax <= rbx && lay <= ray && lay >= rby) || (lbx >= rax && lbx <= rbx && lby <= ray && lby >= rby)) printf("T\n");
        else if (max(lax, lbx) - rax > rbx - rax + abs(lax - lbx) || max(lay, lby) - rby > ray - rby + abs(lay - lby)) printf("F\n");
        else ch();
    }
    return 0;
}
2022/11/14 19:44
加载中...