1-C求助

用的自己的方法模拟.
识别冲突语句;插入空语句;消除因为插入被解决冲突的后续语句.
但是并不能过题,请大佬瞧一瞧TAT
#include <bits/stdc++.h>
using namespace std;
int world[105][3],ans;
int main(){
    int n;
    scanf("%d",&n);
    for(int i=0;i<n;i++){
        for(int j=0;j<3;j++){
            scanf("%d",&world[i][j]);
        }
    }
    for(int i=0;i<n;i++){
        if(world[i][0]==1){
            ans+=3;
            world[i+1][2]=0;
            world[i+1][1]=0;
            world[i+2][2]=0;
        }
        else if(world[i][1]==1){
            ans+=2;
            world[i+1][2]=0;
            world[i+1][1]=0;
            world[i+2][2]=0;
        }
        else if(world[i][2]==1){
            ans+=1;
            world[i+1][2]=0;
            world[i+2][2]=0;
        }
    }
    printf("%d",ans);
    return 0;
}


全部评论
#include <bits/stdc++.h> using namespace std; int world[105][3],ans; int main(){     int n;     scanf("%d",&n);     for(int i=0;i<n;i++){         for(int j=0;j<3;j++){             scanf("%d",&world[i][j]);         }     }     for(int i=0;i<n;i++){         if(world[i][0]==1){             ans+=3;             world[i+1][2]=0;             world[i+1][1]=0;             world[i+2][2]=0;         }         else if(world[i][1]==1){             ans+=2;             world[i+1][2]=0;             world[i+1][1]=0;             world[i+2][2]=0;         }         else if(world[i][2]==1){             ans+=1;             world[i+1][2]=0;             world[i+2][2]=0;             while(i+1 < n && world[i+1][0] != 1 && world[i+1][1] == 1) {                 ans += 1;                 world[i+2][2] = 0;                 i++;             }         }     }     printf("%d",ans);     return 0; }
点赞 回复 分享
发布于 2022-01-26 22:06
world[i][2]等于1的情况还会影响到world[i+1][1]等于1
点赞 回复 分享
发布于 2022-01-26 22:00

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务