求助B题,还有哪里没有考虑到啊呜呜呜

#include<bits/stdc++.h>
#define ll long long
using namespace std;
int main()
{
    int t;
    cin >> t;
    while(t--)
    {
        int n;
        cin >> n;
        int right = 2, left = 2, mid = 3;
        map<pair<ll, ll>, bool> mp;
        for (int i = 0; i < n; i++){
            ll r, c;
            cin >> r >> c;
            mp[{r, c}] = 1;
            if (left && c < 0){
                if (r == 1 && (mp[{2, c}] == 1 || mp[{2, c + 1}] == 1 || mp[{2, c - 1}] == 1)) left = 0;
                else if (r == 2 && (mp[{1, c}] == 1 || mp[{1, c + 1}] == 1 || mp[{1, c - 1}] == 1)) left = 0;
                else left = 1;
            }
            else if (right && c > 0){
                if (r == 1 && (mp[{2, c}] == 1 || mp[{2, c + 1}] == 1 || mp[{2, c - 1}] == 1)) right = 0;
                else if (r == 2 && (mp[{1, c}] == 1 || mp[{1, c + 1}] == 1 || mp[{1, c - 1}] == 1)) right = 0;
                else right = 1;
            }
            if (r == 2 && c == 0){
                right = min(right, 1);
                left = min(left, 1);
            }
        }
        if (mp[{1, 1}] == 1) mid--;
        if (mp[{2, 0}] == 1) mid--;
        if (mp[{1, -1}] == 1) mid--;
        cout << min(mid, right + left) << endl;
    }
}

全部评论

相关推荐

码农索隆:卡学历都不行了,开始卡颜值了
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-10 15:58
投个小米提前批试试水,先投一个岗位看看形势,不行就再沉淀一下投第二个岗位,莫辜负
Java抽象带篮子:我嘞个骚刚,已经开始研发6g了吗
投递小米集团等公司7个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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