题解 | #交叉线#

交叉线

https://www.nowcoder.com/practice/54fe00d9b0e14688bd3d31ad539b929c

#include <bits/stdc++.h>
#include <sys/types.h>
using namespace std;

typedef pair<long long int, long long int> line;
#define x first
#define y second
line arr[1005];

bool cmp( line a, line b){
    if( a.x != b.x) return a.x < b.x;
    else return a.y <= b.y;
}
int main() {
    int T;
    cin >> T;
    while(T--){
        int pre, nex;
        int n;
        cin >> n;
        int cnt = 0;
        for( int i = 0; i < n; i++){
            if( !i ){
                cin >> pre;
            }
            else{
                cin >> nex;
                arr[cnt].x = pre;
                arr[cnt].y = nex;
                if( arr[cnt].x > arr[cnt].y )   swap( arr[cnt].x, arr[cnt].y);
                cnt++;
                pre = nex;
            }
        }
        sort( arr, arr + cnt, cmp);
        // for( int i = 0; i < n-1; i++){
        //     cout << arr[i].x << ' ' <<arr[i].y <<endl;
        // }
        bool flag = false;
        for(int i = 0; i < n-1; i++){
            for( int j = i + 1; j < n-1; j++){
                if( arr[i].x < arr[j].x && arr[i].y < arr[j].y && arr[i].y > arr[j].x){
                    cout << 'y' << endl;
                    // cout << arr[i].x << ' ' << arr[i].y <<endl;
                    // cout << arr[j].x <<' ' <<arr[j].y <<endl;
                    flag = true;
                    break;
                } 
            }
            if( flag ) break;
        }
        if(!flag)
            cout << 'n' << endl;
    }
    return 0;
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

05-25 10:45
门头沟学院 Java
Frank_zhan...:没实习一个项目肯定不够,可以再做一个轮子,技术栈再补一个mq,微服务,整体再换个简历模板,暑期尽量再找一个日常实习
无实习如何秋招上岸
点赞 评论 收藏
分享
门口唉提是地铁杀:之前b站被一个游戏demo深深的吸引了。看up主页发现是个初创公司,而且还在招人,也是一天60。二面的时候要我做一个登录验证和传输文件两个微服务,做完要我推到github仓库,还要我加上jaeger和一堆运维工具做性能测试并且面试的时候投屏演示。我傻乎乎的做完以后人家跟我说一句现在暂时不招人,1分钱没拿到全是白干
你的秋招第一场笔试是哪家
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务